Task: | Robotti |
Sender: | rottis |
Submission time: | 2024-10-28 10:45:48 +0200 |
Language: | C++ (C++17) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.00 s | 1, 2 | details |
#2 | ACCEPTED | 0.00 s | 1, 2 | details |
#3 | WRONG ANSWER | 0.00 s | 1, 2 | details |
#4 | ACCEPTED | 0.00 s | 1, 2 | details |
#5 | WRONG ANSWER | 0.00 s | 1, 2 | details |
#6 | RUNTIME ERROR | 0.00 s | 1, 2 | details |
#7 | RUNTIME ERROR | 0.00 s | 1, 2 | details |
#8 | ACCEPTED | 0.00 s | 1, 2 | details |
#9 | ACCEPTED | 0.00 s | 1, 2 | details |
#10 | WRONG ANSWER | 0.00 s | 1, 2 | details |
#11 | RUNTIME ERROR | 0.00 s | 1, 2 | details |
#12 | WRONG ANSWER | 0.00 s | 2 | details |
#13 | RUNTIME ERROR | 0.00 s | 2 | details |
#14 | RUNTIME ERROR | 0.01 s | 2 | details |
#15 | WRONG ANSWER | 0.01 s | 2 | details |
#16 | RUNTIME ERROR | 0.00 s | 2 | details |
#17 | ACCEPTED | 0.01 s | 2 | details |
#18 | WRONG ANSWER | 0.01 s | 2 | details |
#19 | RUNTIME ERROR | 0.03 s | 2 | details |
#20 | ACCEPTED | 0.01 s | 2 | details |
#21 | WRONG ANSWER | 0.01 s | 2 | details |
#22 | WRONG ANSWER | 0.01 s | 2 | details |
#23 | WRONG ANSWER | 0.08 s | 2 | details |
#24 | RUNTIME ERROR | 0.01 s | 2 | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:44:27: warning: 'robot_ptr' may be used uninitialized in this function [-Wmaybe-uninitialized] 44 | char *right_ptr = step(board, n, robot_ptr, RIGHT); | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Code
#define LEFT -1 #define RIGHT 1 #include <iostream> char* step(char* board, long n, char* robot, int dir) { if (robot == nullptr) { throw "you fucked it up idiot!!!"; } while (robot >= board && robot < board + n*sizeof(char)) { robot += dir*sizeof(char); if (*robot == '*') { return robot; } } return nullptr; } void print_board(char* board, long n) { for (int i = 0; i < n; i++) { std::cout << board[i]; } } int main() { long n; std::cin >> n; char *board = (char*) malloc((1+n) * sizeof(char)); std::cin >> board; long long steps = 0; long coins_collected = 0; char *robot_ptr; for (long i = 0; i < n; i++) { if (board[i] == 'R') { robot_ptr = board + i; break; } } char *left_ptr = step(board, n, robot_ptr, LEFT); char *right_ptr = step(board, n, robot_ptr, RIGHT); while ( !(left_ptr == nullptr && right_ptr == nullptr) && ( ( // either but not both is null left_ptr == nullptr || right_ptr == nullptr ) || ( // both are not null and not in middle (long)(right_ptr - board) + (long)(left_ptr - board) != 2*(long)(robot_ptr - board) ) ) ) { std::cout << (long)(left_ptr - board) << ' ' << (long)(robot_ptr - board) << ' ' << (long)(right_ptr - board) << '\n'; // closer to left? if ( (robot_ptr - left_ptr < right_ptr - robot_ptr) && left_ptr != nullptr ) { // go left steps += robot_ptr - left_ptr; robot_ptr = left_ptr; left_ptr = step(board, n, left_ptr, LEFT); } else { // go right steps += right_ptr - robot_ptr; robot_ptr = right_ptr; right_ptr = step(board, n, right_ptr, RIGHT); } coins_collected++; } std::cout << steps << ' ' << coins_collected << std::endl; return 0; }
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1 R |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 2
Group: 1, 2
Verdict: ACCEPTED
input |
---|
10 ...R...... |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 3
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
10 **.R...*** |
correct output |
---|
12 5 |
user output |
---|
1 3 7 0 1 7 -93824992329408 0 7 -93824992329408 7 8 -93824992329408 8 9 ... |
Test 4
Group: 1, 2
Verdict: ACCEPTED
input |
---|
10 ***R****** |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 5
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
1000 R................................ |
correct output |
---|
947 9 |
user output |
---|
-93824992329408 0 148 -93824992329408 148 226 -93824992329408 226 257 -93824992329408 257 428 -93824992329408 428 494 ... |
Test 6
Group: 1, 2
Verdict: RUNTIME ERROR
input |
---|
1000 ................................. |
correct output |
---|
886 9 |
user output |
---|
(empty) |
Error:
terminate called after throwing an instance of 'char const*'
Test 7
Group: 1, 2
Verdict: RUNTIME ERROR
input |
---|
1000 .....*..*....**..**..*......*.... |
correct output |
---|
1287 400 |
user output |
---|
(empty) |
Error:
terminate called after throwing an instance of 'char const*'
Test 8
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 ************.*****************... |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 9
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 ******************************... |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 10
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
1000 R*****************************... |
correct output |
---|
999 999 |
user output |
---|
-93824992329408 0 1 -93824992329408 1 2 -93824992329408 2 3 -93824992329408 3 4 -93824992329408 4 5 ... |
Test 11
Group: 1, 2
Verdict: RUNTIME ERROR
input |
---|
1000 ******************************... |
correct output |
---|
999 999 |
user output |
---|
(empty) |
Error:
terminate called after throwing an instance of 'char const*'
Test 12
Group: 2
Verdict: WRONG ANSWER
input |
---|
10000 .......**........*...........*... |
correct output |
---|
10971 999 |
user output |
---|
991 999 1002 991 1002 1026 973 991 1026 971 973 1026 969 971 1026 ... |
Test 13
Group: 2
Verdict: RUNTIME ERROR
input |
---|
10000 *..*....*......*.....*..*........ |
correct output |
---|
9999 999 |
user output |
---|
(empty) |
Error:
terminate called after throwing an instance of 'char const*'
Test 14
Group: 2
Verdict: RUNTIME ERROR
input |
---|
10000 *.*.*...**.*...*....**.**.**..... |
correct output |
---|
18766 5000 |
user output |
---|
1233 1234 1236 1232 1233 1236 1223 1232 1236 1223 1236 1237 1223 1237 1238 ... |
Error:
terminate called after throwing an instance of 'char const*'
Test 15
Group: 2
Verdict: WRONG ANSWER
input |
---|
10000 R*****************************... |
correct output |
---|
9999 9999 |
user output |
---|
-93824992329408 0 1 -93824992329408 1 2 -93824992329408 2 3 -93824992329408 3 4 -93824992329408 4 5 ... |
Test 16
Group: 2
Verdict: RUNTIME ERROR
input |
---|
10000 ******************************... |
correct output |
---|
9999 9999 |
user output |
---|
(empty) |
Error:
terminate called after throwing an instance of 'char const*'
Test 17
Group: 2
Verdict: ACCEPTED
input |
---|
200000 ................................. |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 18
Group: 2
Verdict: WRONG ANSWER
input |
---|
200000 ................................. |
correct output |
---|
299934 10000 |
user output |
---|
99966 100000 100008 99966 100008 100015 99966 100015 100171 99959 99966 100171 99933 99959 100171 ... |
Test 19
Group: 2
Verdict: RUNTIME ERROR
input |
---|
200000 **.***....**..**.....***.*..*.... |
correct output |
---|
299998 100000 |
user output |
---|
99994 100000 100001 99994 100001 100005 99994 100005 100008 99994 100008 100009 99994 100009 100013 ... |
Error:
terminate called after throwing an instance of 'char const*'
Test 20
Group: 2
Verdict: ACCEPTED
input |
---|
200000 ******************************... |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 21
Group: 2
Verdict: WRONG ANSWER
input |
---|
200000 R................................ |
correct output |
---|
133765 3 |
user output |
---|
-23456241950736 0 70142 -23456241950736 70142 84564 -23456241950736 84564 133765 133765 3 |
Test 22
Group: 2
Verdict: WRONG ANSWER
input |
---|
200000 R................................ |
correct output |
---|
199982 5000 |
user output |
---|
-23456241950736 0 66 -23456241950736 66 81 -23456241950736 81 106 -23456241950736 106 230 -23456241950736 230 241 ... |
Test 23
Group: 2
Verdict: WRONG ANSWER
input |
---|
200000 R*****************************... |
correct output |
---|
199999 199999 |
user output |
---|
-23456241950736 0 1 -23456241950736 1 2 -23456241950736 2 3 -23456241950736 3 4 -23456241950736 4 5 ... |
Test 24
Group: 2
Verdict: RUNTIME ERROR
input |
---|
200000 ******************************... |
correct output |
---|
199999 199999 |
user output |
---|
(empty) |
Error:
terminate called after throwing an instance of 'char const*'