c++的講師群們因為忙著備課與出題居然要看日出了!!!
但是距離日出還有1個半小時,講師們不想再回去搞那些麻煩的題目,於是他們決定玩點遊戲打發打發時間。
佑佑:「原神,啟動!」
世宗:「你要啟動去旁邊啟動。」
佑佑:「蛤,不要啦,那我們要玩什麼。」
807:「玩99啊。剛好我有牌。」
佑佑:「蛤,那是什麼。」
世宗:「遊戲規則......(詳見下)」
807:「對,一款策略遊戲。」
佑佑:「蛤,這不算運氣遊戲嗎。」
世宗:「你玩一遍就懂了。」
經過長達2個小時的遊玩,佑佑成功的被807和世宗打哭了。
佑佑:「你們的策略就是圍攻我嗎?」
807:「聯合處理最難搞的對手。」
世宗:「敵人的敵人就是朋友。」
佑佑:「你倆一搭一唱是吧。哭了。」
佑佑傷心的回到床上躺下,思考著復仇的計畫。
807:「欸不要睡著欸,快日出了。」
佑佑不發一語的穿上外套,那天凌晨,佑佑看著日出的微光,決定要在小小賽的時候奮起復仇!
於是,時間來到了今天,佑佑已經想好了復仇的計畫,他要提前模擬好所有可能的勝負,只要輸的是自己,他就不玩那一局了,但是佑佑是大笨,他顯然模擬不出好幾輪由52張牌組成的牌局。但是,不要忘了,他可是暑訓cpp的講師啊!他決定把這個難題交給你們。
九九必須要有兩個玩家以上,人數並沒有上限(不過人太多的時候同時用多副撲克牌可以節省洗牌麻煩),除了發牌之外,遊戲中沒有莊家、閒家之分。發牌後,每位玩家分得四張或者五張手牌,其他剩下的牌背面朝上置於桌面(山)。發四張牌時,由於手牌有功能牌的機率較發五張牌來的小,遊戲較快結束,適合超過四個玩家的牌局,可避免因為牌局時間拖長,導致淘汰的玩家在旁邊枯等許久。
遊戲開始後。由編號為0的玩家開始輪流出牌於桌面(海),海開始的數值為0,玩家所出的牌分為兩類,分別是數值牌或功能牌:若是數值牌則累加海中的數值,如原本是15時,出牌「9」,則此時海的數值為15+9=24;若玩家出的是功能牌,則遊戲依照該牌的功能(後述)繼續進行。玩家出牌後,要從山抽一張牌,保持手牌原有的張數。若山的牌全部被抽完,通常會將海裡的牌全部重新洗過重新堆成山,保留原來海中的數值,遊戲繼續進行。
當某一玩家不論出哪張牌後都會使海中的數值超過99時,則該玩家淘汰。其他玩家維持海的目前的數值繼續進行遊戲,直到剩下唯一玩家為止,此玩家為優勝者。
其中若有玩家出了5做指定之用,其後同一行會跟隨一個數字代表所指定的玩家,下一位出牌的玩家即為該玩家,此後便繼續由該玩家依原本順序進行
而若有玩家所出的牌導致了排海大於99,則此名玩家淘汰,牌海還原到出牌前的狀態,同時輸出玩家編號
,此後所有出牌忽略此名玩家
$n \enspace m(2\leq n\leq 10^5,\enspace n\leq m \leq 5 \times 10^5)$
$a_1$
$\dots$
$(5\enspace b_i\enspace ,0 \leq b_i < n)$
(其中若有玩家出了5做指定之用,其後同一行會跟隨一個數字代表所指定的玩家)
$\dots$
$a_m$
首先n, m為參與玩家數與總出牌數
接下來連續m行為所有玩家所出的牌
$loser_1$
$\dots$
$loser_x$
$survivor_1 \enspace survivor_2 \enspace survivor_3 \enspace \dots \enspace survivor_k$
(對於每次被淘汰的玩家,輸出其玩家編號,並在最後一行輸出所有尚未落敗的倖存者)
No. | Testdata Range | Score |
---|