2012-08-15
SRM 550
Div1 Easy (250) RotatingBot
問題
- 直進と左90℃ターンを交互に行うロボットがW×Hの升目を移動する。
- ロボットは初期状態で東を向いていて、壁か一度でも通ったところの手前でターンする。
- ターンしても進めなくなるか、途中で停止したログが与えられる。
- W×Hを求める。不正なログの場合は-1を返す。
方針
- 1ターンずつシミュレーションして不正な状態かどうか調べる
- 提出、コーナーケースで死亡
- 解きなおし
- 最初に最大範囲だけ求めておく
- そのあと1ターンずつ進めて、不正な状態をチェック
- https://github.com/firewood/topcoder/blob/master/srm_5xx/srm_550/RotatingBot.cpp
結果
x-- -1 151.03*0-25.0 = -25.0pt 681st rating 1339 -> 1202
チェックは分離すべきだった。
チャレンジ失敗はよいとして、システムテストでいっぱい落ちていたので反省。
コメントを書く
トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120815