拉密(Rummikub)是一個四個人玩的遊戲。某天盩僰麌發現支援N人同時遊玩的擴展拉密(ExtRummikub)推出了,於是他興高采烈的找了
但是愛搞怪的盩僰麌不想要直接就換過去,決定叫大家玩一個遊戲,要贏得這個遊戲才能換位置:拿出N張拉密牌,從0編號到
接著,每個人輪流進到房間中,他可以看從左數來第
因為每個人都想換到自己的位子,所以他們可以在進去房間之前討論進去房間之後的策略。當然,為了避免第一個人進去就把牌按照順序擺好或者把所有牌的位置記住,盩僰麌規定每個人(包括他自己)進去的時候都不能動牌堆的順序。而每個人從房間中出來之後,盩僰麌會以一種特殊的方式洗牌:隨機決定一個0到
請你寫一個程式幫助這些人,讓他們有最高的機率可以成功贏得這場遊戲。
本題沒有輸入,如果你輸入了任何東西,可能會導致各種不可預期的結果。
請記得#include "lib2056.h"
。以下是幾個你可以使用的函式:
int Testcase()
:請在程式開始時呼叫,這個函式會回傳該筆測資的回合數
int Init()
:請於每個回合開始前呼叫,這個函式會回傳
接著你必須照編號
int Query(int p)
:你可以呼叫這個函式來得到從左數來第int Query(int)
,不論你最後有沒有回報正確的答案,你都會輸掉這回合(但是你還是得照常完成這個回合)。
void Answer(int q)
:當你確定從左數來第
呼叫完此函式後程式會自動進行到下一個人的階段。當
如果在一筆測資的
對於全部測資,
本題沒有輸出。
以下是一個保證格式正確(不會CE也不會RE、MLE)但只能讓你獲得1分的範例程式:
#include "lib2056.h" int main() { int t = Testcase(); while (t--) { int n = Init(); for (int i = 0; i < n; ++i) { int p = Query(i); Answer(i); } } }
Problem Set by WeaK, waynetuinfor
Description by Yihda Yol
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0 | 1 | |
2 | 1~3 | 8 | |
3 | 4~6 | 37 | |
4 | 7~9 | 54 |