Task: | High score |
Sender: | 🐟FishyGoldenBeetroot |
Submission time: | 2015-09-09 18:37:27 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.04 s | details |
#2 | ACCEPTED | 0.05 s | details |
#3 | ACCEPTED | 0.05 s | details |
#4 | ACCEPTED | 0.05 s | details |
#5 | ACCEPTED | 0.05 s | details |
#6 | ACCEPTED | 0.05 s | details |
#7 | ACCEPTED | 0.04 s | details |
#8 | ACCEPTED | 0.05 s | details |
#9 | ACCEPTED | 0.05 s | details |
#10 | ACCEPTED | 0.05 s | details |
#11 | ACCEPTED | 0.04 s | details |
#12 | ACCEPTED | 0.05 s | details |
#13 | ACCEPTED | 0.05 s | details |
#14 | ACCEPTED | 0.06 s | details |
#15 | ACCEPTED | 0.06 s | details |
#16 | ACCEPTED | 0.05 s | details |
#17 | ACCEPTED | 0.05 s | details |
#18 | ACCEPTED | 0.05 s | details |
#19 | ACCEPTED | 0.06 s | details |
#20 | ACCEPTED | 0.05 s | details |
#21 | ACCEPTED | 0.05 s | details |
#22 | ACCEPTED | 0.10 s | details |
#23 | ACCEPTED | 0.05 s | details |
#24 | ACCEPTED | 0.05 s | details |
#25 | ACCEPTED | 0.07 s | details |
#26 | ACCEPTED | 0.06 s | details |
#27 | ACCEPTED | 0.31 s | details |
#28 | ACCEPTED | 0.31 s | details |
#29 | ACCEPTED | 0.29 s | details |
#30 | ACCEPTED | 0.29 s | details |
#31 | ACCEPTED | 0.28 s | details |
#32 | ACCEPTED | 0.31 s | details |
#33 | ACCEPTED | 0.10 s | details |
#34 | ACCEPTED | 0.20 s | details |
#35 | ACCEPTED | 0.32 s | details |
#36 | ACCEPTED | 0.32 s | details |
#37 | ACCEPTED | 0.11 s | details |
#38 | ACCEPTED | 0.19 s | details |
#39 | ACCEPTED | 0.29 s | details |
#40 | ACCEPTED | 0.32 s | details |
Code
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> ii; #define Y first #define X second int h, w; ii t; char m[2000][2000]; bool findRoute() { t = ii(0, 0); int y = 0; bool foundAnyNewC = false; while(true) { if(m[y][t.X] == 'C') { t = ii(y, t.X); foundAnyNewC = true; } if(t.X == w - 1 && (y == h - 1 || m[y][t.X] == 'x')) { m[y][t.X] = 'x'; /*for(int y = 0; y < h; ++y) { for(int x = 0; x < w; ++x) { cout << m[y][x]; } cout << "\n"; } cout << "\n";*/ return foundAnyNewC; } if(y == h - 1 || m[y][t.X] == 'x') { m[y][t.X] = 'x'; t = ii(t.Y, t.X + 1); y = t.Y; } else { m[y][t.X] = 'x'; ++y; } } throw; } int main() { cin >> h >> w; int mul = h + w - 2; for(int y = 0; y < h; ++y) { for(int x = 0; x < w; ++x) { cin >> m[y][x]; } } int count = 0; while(findRoute()) { ++count; } count = max(1, count); cout << count * mul << "\n"; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
4 5
..C.. ...C. .C.C. C.... |
correct output |
---|
21 |
user output |
---|
21 |
Test 2
Verdict: ACCEPTED
input |
---|
3 3
C.. .C. ..C |
correct output |
---|
4 |
user output |
---|
4 |
Test 3
Verdict: ACCEPTED
input |
---|
4 4
CCCC CCCC CCCC CCCC |
correct output |
---|
24 |
user output |
---|
24 |
Test 4
Verdict: ACCEPTED
input |
---|
5 5
...C. .CCCC ....C ....C ... |
correct output |
---|
16 |
user output |
---|
16 |
Test 5
Verdict: ACCEPTED
input |
---|
6 2
.C C. .C C. ... |
correct output |
---|
12 |
user output |
---|
12 |
Test 6
Verdict: ACCEPTED
input |
---|
4 6
...... .CC... .CC... .CC... |
correct output |
---|
16 |
user output |
---|
16 |
Test 7
Verdict: ACCEPTED
input |
---|
4 6
...... .CC... .CC... C..C.. |
correct output |
---|
24 |
user output |
---|
24 |
Test 8
Verdict: ACCEPTED
input |
---|
4 2
.C C. .C .C |
correct output |
---|
8 |
user output |
---|
8 |
Test 9
Verdict: ACCEPTED
input |
---|
6 3
CCC C.C C.. .C. ... |
correct output |
---|
21 |
user output |
---|
21 |
Test 10
Verdict: ACCEPTED
input |
---|
2 2
.C C. |
correct output |
---|
4 |
user output |
---|
4 |
Test 11
Verdict: ACCEPTED
input |
---|
5 6
....C. ..CC.. C....C ...CC. ... |
correct output |
---|
27 |
user output |
---|
27 |
Test 12
Verdict: ACCEPTED
input |
---|
2 5
.CC.C C.C.. |
correct output |
---|
10 |
user output |
---|
10 |
Test 13
Verdict: ACCEPTED
input |
---|
3 9
C........ .......C. ......CC. |
correct output |
---|
20 |
user output |
---|
20 |
Test 14
Verdict: ACCEPTED
input |
---|
13 14
.......C...CC. ......C..C...C .......C...... ....C......... ... |
correct output |
---|
225 |
user output |
---|
225 |
Test 15
Verdict: ACCEPTED
input |
---|
8 18
CCC..CC.C...C...C. C...C.CC.CC...C... .....C..........CC C.C.CC.....C..C.C. ... |
correct output |
---|
168 |
user output |
---|
168 |
Test 16
Verdict: ACCEPTED
input |
---|
18 13
...C...C..... ............. .........C... .C.C....C.... ... |
correct output |
---|
261 |
user output |
---|
261 |
Test 17
Verdict: ACCEPTED
input |
---|
8 2
C. .. .. C. ... |
correct output |
---|
16 |
user output |
---|
16 |
Test 18
Verdict: ACCEPTED
input |
---|
6 8
C....... ..C..... CC...... ..C..... ... |
correct output |
---|
24 |
user output |
---|
24 |
Test 19
Verdict: ACCEPTED
input |
---|
12 13
...CCC......C .........C.C. .C..........C .C.CCCC.C..C. ... |
correct output |
---|
184 |
user output |
---|
184 |
Test 20
Verdict: ACCEPTED
input |
---|
9 17
..C..C........CCC .CC..C.........C. .C...C.....C..... .............CC.C ... |
correct output |
---|
144 |
user output |
---|
144 |
Test 21
Verdict: ACCEPTED
input |
---|
107 1161
................................. |
correct output |
---|
46842 |
user output |
---|
46842 |
Test 22
Verdict: ACCEPTED
input |
---|
583 1570
................................. |
correct output |
---|
114003 |
user output |
---|
114003 |
Test 23
Verdict: ACCEPTED
input |
---|
306 172
................................. |
correct output |
---|
12376 |
user output |
---|
12376 |
Test 24
Verdict: ACCEPTED
input |
---|
412 222
..........C...................... |
correct output |
---|
28440 |
user output |
---|
28440 |
Test 25
Verdict: ACCEPTED
input |
---|
1041 408
....C............................ |
correct output |
---|
60774 |
user output |
---|
60774 |
Test 26
Verdict: ACCEPTED
input |
---|
159 1228
................................. |
correct output |
---|
31855 |
user output |
---|
31855 |
Test 27
Verdict: ACCEPTED
input |
---|
1985 1978
................................. |
correct output |
---|
102986 |
user output |
---|
102986 |
Test 28
Verdict: ACCEPTED
input |
---|
1839 1960
................................. |
correct output |
---|
193647 |
user output |
---|
193647 |
Test 29
Verdict: ACCEPTED
input |
---|
1982 1816
................................. |
correct output |
---|
186004 |
user output |
---|
186004 |
Test 30
Verdict: ACCEPTED
input |
---|
1894 1842
................................. |
correct output |
---|
119488 |
user output |
---|
119488 |
Test 31
Verdict: ACCEPTED
input |
---|
1849 1866
................................. |
correct output |
---|
207928 |
user output |
---|
207928 |
Test 32
Verdict: ACCEPTED
input |
---|
1891 1829
................................. |
correct output |
---|
141284 |
user output |
---|
141284 |
Test 33
Verdict: ACCEPTED
input |
---|
1000 1000
................................. |
correct output |
---|
1998000 |
user output |
---|
1998000 |
Test 34
Verdict: ACCEPTED
input |
---|
1500 1500
................................. |
correct output |
---|
4497000 |
user output |
---|
4497000 |
Test 35
Verdict: ACCEPTED
input |
---|
1900 1900
................................. |
correct output |
---|
7216200 |
user output |
---|
7216200 |
Test 36
Verdict: ACCEPTED
input |
---|
2000 2000
................................. |
correct output |
---|
7996000 |
user output |
---|
7996000 |
Test 37
Verdict: ACCEPTED
input |
---|
1000 1000
................................. |
correct output |
---|
1226772 |
user output |
---|
1226772 |
Test 38
Verdict: ACCEPTED
input |
---|
1500 1500
................................. |
correct output |
---|
2716188 |
user output |
---|
2716188 |
Test 39
Verdict: ACCEPTED
input |
---|
1900 1900
................................. |
correct output |
---|
4360104 |
user output |
---|
4360104 |
Test 40
Verdict: ACCEPTED
input |
---|
2000 2000
................................. |
correct output |
---|
4837580 |
user output |
---|
4837580 |