結果

問題 No.769 UNOシミュレータ
コンテスト
ユーザー mai
提出日時 2018-12-16 22:32:15
言語 Ruby
(4.0.2)
コンパイル:
ruby -w -c _filename_
実行:
ruby _filename_
結果
AC  
実行時間 293 ms / 2,000 ms
コード長 1,111 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 244 ms
コンパイル使用メモリ 9,088 KB
実行使用メモリ 34,304 KB
最終ジャッジ日時 2026-05-16 11:15:03
合計ジャッジ時間 4,146 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 23
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #
raw source code

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}"
0