Problem Statement
You are going to make the robot move according to the following algorithm. Create a String S by concatenating times copies of the given
After you have gone through all the characters of S, determine which squares have been visited by the robot. A square is considered visited if the robot has been in it at least once. The starting and ending squares are considered visited. Return the total number of visited squares.
Definition
- Class:
- RobotSimulation
- Method:
- cellsVisited
- Parameters:
- String, int
- Returns:
- int
- Method signature:
- int cellsVisited(String program, int times)
- (be sure your method is public)
Constraints
- program will contain between 1 and 10 characters, inclusive.
- Each character in program will be one of 'U', 'D', 'L' or 'R'.
- times will be between 1 and 200,000,000, inclusive.
Examples
"RRR"
100
Returns: 301
The robot will move to the right 300 times, so 301 squares will be visited.
"DDU"
100
Returns: 102
The robot will move according to the pattern "DDU" 100 times. Initially, we have 1 visited square. The first time the pattern "DDU" is applied, it adds 2 new squares, and each subsequent time this pattern is applied, only 1 new square is added. Therefore the total number of visited squares is 1 + 2 + 1 * 99 = 102.
"URLD"
100
Returns: 3
After each repetition of the pattern "URLD", the robot returns to the initial cell. So the answer here doesn't depend on times and is always equal to 3.
"UUDUDDLLDR"
1
Returns: 7
"UUDUDDLLDR"
12345678
Returns: 37037039
"RRRRRRRRRR"
200000000
Returns: 2000000001
"LLLLLLLLLL"
200000000
Returns: 2000000001
"DDDDDDDDDD"
200000000
Returns: 2000000001
"UUUUUUUUUU"
200000000
Returns: 2000000001
"R"
1
Returns: 2
"L"
1
Returns: 2
"D"
1
Returns: 2
"U"
1
Returns: 2
"RDUD"
56194568
Returns: 112389137
"RR"
4526680
Returns: 9053361
"RDLDD"
9794058
Returns: 48970291
"RR"
67
Returns: 135
"LUD"
119205853
Returns: 238411707
"DR"
30586691
Returns: 61173383
"DLRDLLRR"
2
Returns: 11
"DDDLDUDDDD"
37533746
Returns: 300269969
"URL"
69
Returns: 139
"UU"
1316
Returns: 2633
"LDUUDDLRLL"
7055835
Returns: 35279176
"DUDDLURLDL"
8788
Returns: 43941
"LULDUULRUU"
7230436
Returns: 57843489
"LLDDDULRUU"
929159
Returns: 5574955
"UULDUULULU"
191807942
Returns: 1726271479
"ULRUDUDULR"
200000000
Returns: 800000001
"RULRURULUR"
200000000
Returns: 1800000001
"RRRLLUULUU"
200000000
Returns: 1600000001
"LUDRDLDRDL"
200000000
Returns: 1600000001
"ULRDRUDDRR"
200000000
Returns: 1400000001
"DDULUR"
82939606
Returns: 5
"LDDRRLUUD"
868364
Returns: 2605096
"URURLDDD"
200000000
Returns: 1000000002
"UULUDUDRL"
156665
Returns: 469997
"RURDRL"
100172069
Returns: 400688278
"RRLLLDLDUL"
1
Returns: 8
"DDRRURUU"
40724
Returns: 244347
"RDLLDUR"
7051517
Returns: 21154554
"UDLURDRDUR"
2939460
Returns: 14697302
"RDDDDLU"
5717
Returns: 28588
"RUULLRDRRL"
92214
Returns: 461073
"RLDULDLRLL"
91831
Returns: 459157
"DRRRRRLLUR"
95653977
Returns: 573923865
"RULUDLLLLL"
200000000
Returns: 1600000002
"DUDDRRDDLU"
200000000
Returns: 1400000002
"DLLDUURLRR"
200000000
Returns: 7
"DLLDURUUUR"
200000000
Returns: 1200000003
"DUURRULURD"
200000000
Returns: 1200000003
"DDURRLUUUU"
200000000
Returns: 1200000003
"LURLUDULLD"
200000000
Returns: 1200000002
"RDDDLULU"
1
Returns: 9
"DUUURDRLLR"
1163
Returns: 4656
"RDLULLRUUD"
520675
Returns: 2082705
"RLLDDRLRLU"
367913
Returns: 1471655
"DLLRRRDDUU"
6
Returns: 28
"LDDRRRLUDU"
2
Returns: 13
"RUULLDD"
3730493
Returns: 11191485
"LRLRRDDU"
182815060
Returns: 548445183
"RRDDLLU"
109748950
Returns: 329246856
"LRLLUURRD"
21
Returns: 69
"ULULDDDLRR"
7378064
Returns: 36890326
"UDUDDDURRL"
200000000
Returns: 800000003
"ULLDLRDRRR"
90118397
Returns: 450591991
"LRRRRDLLDU"
689016
Returns: 3445085
"URRLRLLDDL"
1
Returns: 6
"ULRDLDDRDU"
200000000
Returns: 800000005
"UUURRDDDUL"
200000000
Returns: 1200000005
"DRRRRLLUUL"
200000000
Returns: 1200000004
"LLRRURRDDL"
200000000
Returns: 1200000004
"LLRURDRDDU"
200000000
Returns: 800000005
"LLDURRRDU"
223969
Returns: 447944
"DRRUULULLD"
200000000
Returns: 1000000008
"DDLLUUURR"
8008
Returns: 24033
"DDLRUUULR"
6801
Returns: 13608
"DRLUUURLD"
5453434
Returns: 10906874
"RRUUULLDD"
3603602
Returns: 10810815
"UUDDRDRRLL"
2
Returns: 11
"UULLLDDRR"
9
Returns: 36
"RRDDLLLUU"
18
Returns: 63
"UULLDLDDRR"
5843
Returns: 29224
"RUUULLLDDR"
35832
Returns: 215000
"LUUDDDRRRL"
40
Returns: 166
"RLLLUUUDDR"
234792
Returns: 939174
"DUURURRLLD"
3
Returns: 15
"LRRURUUDDL"
1
Returns: 7
"RUULLDLDDR"
200000000
Returns: 1000000008
"UDDLDLLRRU"
200000000
Returns: 600000006
"LDDUURURRL"
200000000
Returns: 600000006
"LDDDRRRUUL"
200000000
Returns: 1200000008
"LLUURURRDD"
200000000
Returns: 1000000009
"DRULLLRRRR"
12345
Returns: 49383
"RRRR"
199999999
Returns: 799999997
"LULRLULDDR"
200000000
Returns: 1200000003
"RRRRRRRRRL"
200000000
Returns: 1600000002
"URULLDD"
200000000
Returns: 600000005
"ULRDULLUDD"
200000000
Returns: 800000002
"UUULLLDDRR"
199888777
Returns: 1199332669
"RRRRRRRRRR"
12132132
Returns: 121321321
"LLLLLLLLLL"
1000
Returns: 10001
"DDDDDDDDDD"
10000
Returns: 100001
"UUUUUUUUUU"
100000000
Returns: 1000000001
"UUURRDDL"
1
Returns: 9
"UUDDDDDDDD"
200000000
Returns: 1200000003
"UUURRDDLD"
183217318
Returns: 732869279
"URLDURLD"
200000000
Returns: 3
"UUUUUUUUUD"
300
Returns: 2402
"RRRRRRRRRR"
10000
Returns: 100001
"UDRRRUDLL"
1000
Returns: 2006
"RRU"
2
Returns: 7
"DDDDDDDDDD"
199999999
Returns: 1999999991
"UUUUUUUUUU"
100
Returns: 1001
"UUUUUUUUU"
40
Returns: 361
"D"
1234
Returns: 1235
"LLLLLLLLLL"
500
Returns: 5001
"LLLLLLLLLL"
100000
Returns: 1000001
"RRUUULLDD"
2
Returns: 14
"RRUUULLDD"
1001
Returns: 3012
"LLLLLLLLLL"
10
Returns: 101
"LLLLLLLLLL"
9
Returns: 91
"RRRRRRRRRR"
15
Returns: 151
"LLUURRRDD"
200000000
Returns: 600000009
"UUUUUUUUUU"
1000000
Returns: 10000001