atcoder#ABC219F. [ABC219F] Cleaning Robot
[ABC219F] Cleaning Robot
配点 : 点
問題文
無限に広がる二次元グリッドのマス に掃除ロボットが置かれています。
このロボットに、 種類の文字 L
、R
、U
、D
からなる文字列で表されたプログラムが与えられます。
ロボットは、与えられたプログラムの各文字を先頭の文字から順に読み、各文字について以下の行動を行います。
- ロボットの現在地をマス とする
- 読んだ文字に応じて以下の通りに移動する:-
L
を読んだとき: マス に移動する。R
を読んだとき: マス に移動する。U
を読んだとき: マス に移動する。D
を読んだとき: マス に移動する。
L
、R
、U
、D
からなる文字列 が与えられます。
ロボットが実行するプログラムは、文字列 を 個連接したものです。
ロボットが一度でも存在したことのあるマス(ロボットの初期位置であるマス を含む)は掃除されます。 ロボットがプログラムの実行を終えた後の時点で、掃除されているマスの個数を出力して下さい。
制約
- は
L
、R
、U
、D
からなる長さ 以上 以下の文字列
入力
入力は以下の形式で標準入力から与えられる。
出力
ロボットがプログラムの実行を終えた後の時点で、掃除されているマスの個数を出力せよ。
RDRUL
2
7
ロボットが実行するプログラムは RDRULRDRUL
です。ロボットは初期位置であるマス からはじめ、
$(0, 0) \rightarrow (1, 0) \rightarrow (1, 1) \rightarrow (2, 1) \rightarrow (2, 0) \rightarrow (1, 0) \rightarrow (2, 0) \rightarrow (2, 1) \rightarrow (3, 1) \rightarrow (3, 0) \rightarrow (2, 0)$ と移動します。
その後掃除されているマスは、$(0, 0), (1, 0), (1, 1), (2, 0), (2, 1), (3, 0), (3, 1)$ の 個です。
LR
1000000000000
2
UUURRDDDRRRUUUURDLLUURRRDDDDDDLLLLLLU
31415926535
219911485785