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