| 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*'
