結果
| 問題 | No.769 UNOシミュレータ | 
| コンテスト | |
| ユーザー |  iad_2889 | 
| 提出日時 | 2019-05-09 19:15:20 | 
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 941 ms / 2,000 ms | 
| コード長 | 1,198 bytes | 
| コンパイル時間 | 427 ms | 
| コンパイル使用メモリ | 12,800 KB | 
| 実行使用メモリ | 36,864 KB | 
| 最終ジャッジ日時 | 2024-11-22 09:19:24 | 
| 合計ジャッジ時間 | 8,500 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 23 | 
ソースコード
def get_next(N):
    def _(current,reverse):
        if current == None:
            return 0
        if reverse:
            next = current - 1
            if next < 0:
                next-=N
        else:
            next = current + 1
        return next % N
    return _
N,M = map(int,input().split())
log = [input() for x in range(M)]
players = [[0,0] for x in range(N)]
g_next = get_next(N)
current = None
reverse = False
d_two = 0
d_four = 0
skipper = -1
for card in log:
    current = g_next(current,reverse)
    if d_two:
        if card != "drawtwo":
            players[current][1]+=d_two*2
            current = g_next(current,reverse)
            d_two = 0
    elif d_four:
        if card != "drawfour":
            players[current][1]+=d_four*4
            current = g_next(current,reverse)
            d_four = 0
    players[current][0]+=1
    if card == "drawtwo":
        d_two += 1
    elif card == "drawfour":
        d_four += 1
    elif card == "skip":
        skipper = current
        current = g_next(current,reverse)
    elif card == "reverse":
        reverse^=True
if card == "skip":
    current = skipper
print(current + 1,players[current][0] - players[current][1])
            
            
            
        