OrangeとBlueのロボットがなんか動くから、シミュレーションせよと。
問題文は比較的読めた。
各要求に対して、1回で更新しようとしてバグらせて、sampleが通らない状況に。
一度頭を冷やす為、Bへ行く。
その後Bで詰み、C→Dを経て帰ってくる。
ボタンが100までしか無い事に気付き、毎秒でシミュレートする事にしたら、10分で解けた。
と思いきや、smallでWA.
更新処理を何か修正してsmallをAC→そのままlargeも提出。
q = gets.split(" ") n = q.shift.to_i seq=[] for i in 0...n seq.push [q[i*2],q[i*2+1].to_i] end posO=1 posB=1 seqO=seq.find_all{|a|a[0]=="O"}.map{|a|a[1]} seqB=seq.find_all{|a|a[0]=="B"}.map{|a|a[1]} res = 0 until seq.empty? res += 1 flg = false if !seqO.empty? if posO < seqO[0] posO += 1 elsif posO > seqO[0] posO -= 1 elsif seq[0][0] == "O" flg = true seq.shift seqO.shift end end if !seqB.empty? if posB < seqB[0] posB += 1 elsif posB > seqB[0] posB -= 1 elsif seq[0][0] == "B" && !flg seq.shift seqB.shift end end end res
ifとunlessが混在していてなんかアレですね。
ついでに、posO <=> seqO[0]とかを使えば格好良かった気がします。
まぁバグの温床になりそうですが。
あと、OrangeのOとゼロが見にくくて死ねばいいと思いましたまる。
Redとかにして下さいよ、Google先生・・・
kerlon2011/05/09 23:43まずAのときに、何これークリックしてみよー^q^ → 1 wrong try
次にBに、「出来た(キリッ」 → アウトプット作り忘れてて 1 wrong try
Mi_Sawa2011/05/09 23:45>kerlonさん
まぁ慣れる意味も含めてのQRだろうし、この先やらかさなきゃいいんじゃないかなw