結果
| 問題 | No.769 UNOシミュレータ | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2018-12-16 22:32:15 | 
| 言語 | Ruby (3.4.1) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 483 ms / 2,000 ms | 
| コード長 | 1,111 bytes | 
| コンパイル時間 | 189 ms | 
| コンパイル使用メモリ | 7,552 KB | 
| 実行使用メモリ | 32,512 KB | 
| 最終ジャッジ日時 | 2024-11-22 08:42:00 | 
| 合計ジャッジ時間 | 6,016 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 23 | 
コンパイルメッセージ
Syntax OK
ソースコード
def ascan; gets.split.map(&:to_i); end
N, M = ascan
turn = 0
vec = 1
numcards = [1]*N
lastturn = 0
commands = M.times.map{gets.chomp}
draw = 0
idx = 0
while idx < M
    lastturn = turn
    c = commands[idx]
    
    if draw > 0
        if c == commands[idx-1]
            draw += c == 'drawtwo' ? 2 : 4
            numcards[turn] += 1
            turn += 1*vec
        else
            numcards[turn] -= draw
            turn += 1*vec
            draw = 0
            idx -= 1
        end
    else
        
        case c
        when 'number'
            numcards[turn] += 1
            turn += 1*vec
        when 'drawtwo'
            numcards[turn] += 1
            draw = 2
            turn += 1*vec
        when 'drawfour'
            numcards[turn] += 1
            draw = 4
            turn += 1*vec
        when 'skip'
            numcards[turn] += 1
            turn += 2*vec
        when 'reverse'
            numcards[turn] += 1
            vec *= -1
            turn += 1*vec
        end
        
    end
    turn = (turn + N) % N
    idx += 1
end
puts "#{lastturn+1} #{numcards[lastturn]-1}"
            
            
            
        