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)$ の 個です。