$\large \color{red}{本題為互動題,請注意輸入輸出格式}$
今天笨笨和聰聰在玩一個卡牌遊戲,
遊戲是這樣的,他們會把卡牌排成一排並依序編號 $1$ ~ $n$,每張牌翻開會有數字 $0$ 或 $1$。
你只有一次地翻開機會,假設翻開編號 $i$ 的牌,數字為 $1$,你可以獲得 $i$ 分,否則你拿不到分。
一張牌只會被翻開一次。
笨笨非常想贏,所以找了他弟小笨去偷看牌上的數字是多少,
小笨並不知道規則,笨笨也不知道要怎麼跟他解釋,因為他太笨了,
但是笨笨可以透過通話問小笨編號為 $i$ 的牌上的數字為何。
可是小笨是個脾氣暴躁的人,你如果問他超過 $50$ 次他就會離家出走並且不給你繼續問,
請問笨笨要翻哪一張牌分數才會贏過聰聰?
對於所有測試資料:
$1 \le n \le 50$
本題是互動題,請在程式碼的開頭引入標頭檔 #include "lib0003.h"
,程式碼請勿輸入或輸出任何東西,並且請勿實作 int main()
函式。如果你這麼做可能會$\color{red}{導致各種不可預期}$的結果。
請你實作以下函式:
int sol(int n)
:Judge 會從你的程式呼叫此函式,你要實作此函式並且回傳笨笨要翻哪一個編號的牌
你可以呼叫以下函式:
bool ask(int x)
:呼叫此函式可以問笨笨第 $x$ 張牌上的數字為 $0$ 還是 $1$,最多可呼叫 $50$ 次,並且要滿足 $1 \le x \le n$,否則你會獲得 $\color{red}{Wrong\ Answer}$
本題無輸出,請實作 int sol(int n)
回傳答案
以下是一份符合格式但是會回傳錯誤答案的程式碼
#include "lib0003.h"
bool ask(int x);
int sol(int n){
if(ask(1)) return 1;
return 2;
}
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~19 | 題目範圍限制 | 100 |