2024/2/4に開催されたABC339B問題Langton’s Takahashiの自分用解説です。
時間内に解けませんでした。泣
サンプルコード(解説ページからコピペ)
大事そうなとこ解説
line 4 : グリッドの問題でよく使われる、移動を管理する配列です。
下の図のようにx,y軸をとってるみたいです。
line 10 : 変数mは、今見ている向きを表してます。m=0なら上、1増えるごとに右に90°回転ですね。
その後のif文で、時計周りに進むときはmに+1、半時計周りの時はm+3してます。
こういう発想ができなかったなぁー。
line 20,21 : 見る方向は4方向だけなので、4で割った余りで管理。
line 22,23 : グリッドの上下と左右がつながっているので、グリッド範囲外に出たらその分hかwを引いて
グリッド内に戻してます。
反省
自分は時計周りと半時計周りで別々に管理しようとしてました。そのせいでいらん配列や変数が増えてごちゃごちゃに…。半時計周りの時はmに+3というのは目から鱗でした。