結果
問題 | No.769 UNOシミュレータ |
ユーザー |
|
提出日時 | 2020-02-19 12:21:05 |
言語 | Ruby (3.4.1) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 2,109 bytes |
コンパイル時間 | 85 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 34,432 KB |
最終ジャッジ日時 | 2024-11-22 09:32:10 |
合計ジャッジ時間 | 6,583 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 22 WA * 1 |
コンパイルメッセージ
Syntax OK
ソースコード
# frozen_string_literal: true## represent drunks situation#class Drunksdef numberif @prev2suffer2advanceelsif @prev4suffer4advanceendconsumeadvanceenddef draw2if @prev4suffer4advanceendconsume@bomb += 2@prev2 = trueadvanceenddef draw4if @prev2suffer2advanceendconsume@bomb += 4@prev4 = trueadvanceenddef skipif @prev2suffer2advanceelsif @prev4suffer4advanceendconsumeadvanceadvanceenddef reverseif @prev2suffer2advanceelsif @prev4suffer4advanceend@reverse = !@reverseconsumeadvanceenddef winnerpreviouswinner_id = @turn + 1winner_first_num = @members[@turn].original"#{winner_id} #{winner_first_num}"endprivatedef initialize(num)@turn = 0@reverse = false@prev2 = false@prev4 = false@bomb = 0@members = Array.new(num) { Drunk.new }enddef advanceturn = @turn + (@reverse ? -1 : 1)@turn = turn % @members.sizeenddef previousturn = @turn + (@reverse ? 1 : -1)@turn = turn % @members.sizeenddef suffer2@members[@turn].penalty += @bomb@bomb = 0@prev2 = falseenddef suffer4@members[@turn].penalty += @bomb@bomb = 0@prev4 = falseenddef consume@members[@turn].change += 1end## represent drunk#class Drunkattr_accessor :change, :penaltydef original@change - @penaltyendprivatedef initialize@change = 0@penalty = 0endendend# ----------------------------------- execN, M = gets.chomp.split.map(&:to_i)LS = M.times.map dogets.chompenddrunks = Drunks.new(N)LS.each do |type|case typewhen 'number'drunks.numberwhen 'drawtwo'drunks.draw2when 'drawfour'drunks.draw4when 'skip'drunks.skipwhen 'reverse'drunks.reverseendendputs(drunks.winner)