結果
問題 | 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}"