本題為互動題,僅限使用 C/C++ 作答
小鳥紳士是一位非常會射箭的人,因此你決定向他發起挑戰,
你們決定舉辦 $T$ 場比賽,每場比賽把 $N$ 個氣球排成一排,
兩人依回合制輪流射氣球,一開始由你先射,
並且使用一種特殊箭矢,這種箭矢最多可以一次射破 $K$ 顆氣球。
因為你跟他的技術都很好,所以可以控制自己要射幾顆氣球,
換句話說,你可以控制自己要射的氣球數量為 $1\sim K$ 的任意數量,
而射破最後一顆氣球的人就輸了。
當然小鳥紳士也是一位高手,因此會採用對他最好的策略進行遊戲,
如果你一開始就覺得你不管如何一定會輸,則應該直接向小鳥紳士投降,
如果不是必輸的情況下投降或是必輸情況下沒有投降,
則他會嘲笑你,然後你就會得到一個 WA。
小鳥紳士也很聰明,如果你把必贏的局面玩輸了,
他還是會嘲笑你,然後你也會得到一個 WA。
你可以用你的智謀與策略跟小鳥紳士比賽嗎?
本題沒有輸入,若你輸入了任何東西,可能會導致各種不可預期的結果。
請記得 #include "lib0085.h"
,以下幾個是你可以使用的函式:
int Lets_shoot()
:請在程式一開始呼叫這個函數,這個函數會回傳給你總共要進行 $T$ 場比賽。
void Game(int *N, int *K)
:每場比賽開始時請呼叫這個函數,這個函數會告訴你這場比賽的 $N$ 及 $K$。
int Shooting(int x)
:傳入一個變數 $x$,該變數需介於 $1\sim K$,代表你要射多少顆氣球。這個函數會回傳給你一個數字,若你射完氣球後只剩一顆氣球,該函數會回傳 $0$,代表小鳥紳士投降了,則該場比賽立即結束;否則將回傳一個介於 $1\sim K$ 的值,代表在你射完氣球之後,小鳥紳士射了幾顆氣球。如果你傳入這個函數的變數 $x$ 不是介於 $1\sim K$,你就會得到一個 WA。
void Surrender()
:如果你覺得你會輸,則呼叫此函數向小鳥紳士投降,你在呼叫這個函數後這場比賽會立即結束。
當一場比賽結束後,如果還有其他比賽,則應該呼叫 void Game(int *N, int *K)
進入下場比賽,否則可能會導致各種不可預期的結果。
在最後一場比賽結束當下,會立即幫你結束程式並判斷是否正確。
本題沒有輸出,若你輸出了任何東西,你將會得到一個 WA。
這裡提供一份範例標頭檔與可以 AC 子任務一的範例程式碼可以使用。
這份範例標頭檔中,小鳥紳士可能不會以最佳策略進行遊戲,且程式僅能判斷當剩餘氣球數介於 $2\sim K+1$ 為亂投降,其餘部分無法判斷,因此僅能呈現本題部分效果。
若在本機使用這份標頭檔與這份程式碼執行時,輸入格式如下:
第一行會有一個數字 $T$,代表進行的比賽場數。
接下來 $T$ 行,每行會有兩個數字 $N,K$,分別如題目所述。
如果你的程式被評為 WA,範例評分程式會輸出 "Wrong Answer: MSG",其中 MSG 格式與意義如下:
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~4 | $T\leq4,N\leq2$ | 12 |
2 | 5~21 | 小鳥紳士不一定會採用最好的策略,且遇到必輸的局面時可以在最後一刻,也就是剩一顆氣球時投降。 如果把必勝的局面玩輸也不會被嘲笑 |
60 |
3 | 0~4, 22~38 | 無特別限制 | 28 |
No. | Time Limit (ms) | Memory Limit (KiB) | Output Limit (KiB) | Subtasks |
---|---|---|---|---|
0 | 1500 | 65536 | 65536 | |
1 | 1500 | 65536 | 65536 | |
2 | 1500 | 65536 | 65536 | |
3 | 1500 | 65536 | 65536 | |
4 | 1500 | 65536 | 65536 | |
5 | 1500 | 65536 | 65536 | |
6 | 1500 | 65536 | 65536 | |
7 | 1500 | 65536 | 65536 | |
8 | 1500 | 65536 | 65536 | |
9 | 1500 | 65536 | 65536 | |
10 | 1500 | 65536 | 65536 | |
11 | 1500 | 65536 | 65536 | |
12 | 1500 | 65536 | 65536 | |
13 | 1500 | 65536 | 65536 | |
14 | 1500 | 65536 | 65536 | |
15 | 1500 | 65536 | 65536 | |
16 | 1500 | 65536 | 65536 | |
17 | 1500 | 65536 | 65536 | |
18 | 1500 | 65536 | 65536 | |
19 | 1500 | 65536 | 65536 | |
20 | 1500 | 65536 | 65536 | |
21 | 1500 | 65536 | 65536 | |
22 | 1500 | 65536 | 65536 | |
23 | 1500 | 65536 | 65536 | |
24 | 1500 | 65536 | 65536 | |
25 | 1500 | 65536 | 65536 | |
26 | 1500 | 65536 | 65536 | |
27 | 1500 | 65536 | 65536 | |
28 | 1500 | 65536 | 65536 | |
29 | 1500 | 65536 | 65536 | |
30 | 1500 | 65536 | 65536 | |
31 | 1500 | 65536 | 65536 | |
32 | 1500 | 65536 | 65536 | |
33 | 1500 | 65536 | 65536 | |
34 | 1500 | 65536 | 65536 | |
35 | 1500 | 65536 | 65536 | |
36 | 1500 | 65536 | 65536 | |
37 | 1500 | 65536 | 65536 | |
38 | 1500 | 65536 | 65536 |