Task: | Robotti |
Sender: | noitamonni |
Submission time: | 2024-10-29 17:13:24 +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.01 s | 1, 2 | details |
#3 | WRONG ANSWER | 0.00 s | 1, 2 | details |
#4 | WRONG ANSWER | 0.00 s | 1, 2 | details |
#5 | WRONG ANSWER | 0.00 s | 1, 2 | details |
#6 | WRONG ANSWER | 0.00 s | 1, 2 | details |
#7 | WRONG ANSWER | 0.01 s | 1, 2 | details |
#8 | WRONG ANSWER | 0.00 s | 1, 2 | details |
#9 | WRONG ANSWER | 0.00 s | 1, 2 | details |
#10 | WRONG ANSWER | 0.07 s | 1, 2 | details |
#11 | WRONG ANSWER | 0.07 s | 1, 2 | details |
#12 | WRONG ANSWER | 0.07 s | 2 | details |
#13 | WRONG ANSWER | 0.07 s | 2 | details |
#14 | OUTPUT LIMIT EXCEEDED | 0.00 s | 2 | details |
#15 | OUTPUT LIMIT EXCEEDED | 0.00 s | 2 | details |
#16 | OUTPUT LIMIT EXCEEDED | 0.00 s | 2 | details |
#17 | ACCEPTED | 0.01 s | 2 | details |
#18 | OUTPUT LIMIT EXCEEDED | 0.00 s | 2 | details |
#19 | OUTPUT LIMIT EXCEEDED | 0.00 s | 2 | details |
#20 | WRONG ANSWER | 0.03 s | 2 | details |
#21 | WRONG ANSWER | 0.02 s | 2 | details |
#22 | OUTPUT LIMIT EXCEEDED | 0.00 s | 2 | details |
#23 | OUTPUT LIMIT EXCEEDED | 0.00 s | 2 | details |
#24 | OUTPUT LIMIT EXCEEDED | 0.00 s | 2 | details |
Code
#include <iostream> #include <vector> #include <string> #include <algorithm> #include <cmath> int main() { std::string building; int n; std::cin >> n >> building; int total_steps = 0; int total_coins = 0; size_t pos = building.find('R'); std::vector<int> left_coins; std::vector<int> right_coins; for (size_t i = 0; i < pos; ++i) { if (building[i] == '*') { left_coins.push_back(i); } } std::reverse(left_coins.begin(), left_coins.end()); for (size_t i = pos + 1; i < building.size(); ++i) { if (building[i] == '*') { right_coins.push_back(i); } } while (!left_coins.empty() || !right_coins.empty()) { std::cout << "pos: " << pos << std::endl; std::cout << "steps: " << total_steps << std::endl; std::cout << "coins: " << total_coins << std::endl; std::cout << "left: "; for (int coin : left_coins) std::cout << coin << " "; std::cout << std::endl; std::cout << "right: "; for (int coin : right_coins) std::cout << coin << " "; std::cout << std::endl; int coin; if (left_coins.empty()) { coin = right_coins.front(); right_coins.erase(right_coins.begin()); } else if (right_coins.empty()) { coin = left_coins.front(); left_coins.erase(left_coins.begin()); } else { int left_dist = std::abs(int(left_coins.front() - pos)); int right_dist = std::abs(int(right_coins.front() - pos)); if (left_dist == right_dist) { break; } else if (left_dist < right_dist) { coin = left_coins.front(); left_coins.erase(left_coins.begin()); } else { coin = right_coins.front(); right_coins.erase(right_coins.begin()); } } total_steps += std::abs(int(coin - pos)); total_coins += 1; pos = coin; } std::cout << total_steps << " " << total_coins << std::endl; }
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 |
---|
pos: 3 steps: 0 coins: 0 left: 1 0 right: 7 8 9 ... |
Test 4
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
10 ***R****** |
correct output |
---|
0 0 |
user output |
---|
pos: 3 steps: 0 coins: 0 left: 2 1 0 right: 4 5 6 7 8 9 ... |
Test 5
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
1000 R................................ |
correct output |
---|
947 9 |
user output |
---|
pos: 0 steps: 0 coins: 0 left: right: 148 226 257 428 494 573... |
Test 6
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
1000 ................................. |
correct output |
---|
886 9 |
user output |
---|
pos: 999 steps: 0 coins: 0 left: 840 809 747 712 708 611 ... |
Test 7
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
1000 .....*..*....**..**..*......*.... |
correct output |
---|
1287 400 |
user output |
---|
pos: 700 steps: 0 coins: 0 left: 698 691 690 689 687 684 ... |
Test 8
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
1000 ************.*****************... |
correct output |
---|
0 0 |
user output |
---|
pos: 314 steps: 0 coins: 0 left: 313 312 311 310 309 308 ... |
Test 9
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
1000 ******************************... |
correct output |
---|
0 0 |
user output |
---|
pos: 314 steps: 0 coins: 0 left: 313 312 311 310 309 308 ... |
Test 10
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
1000 R*****************************... |
correct output |
---|
999 999 |
user output |
---|
pos: 0 steps: 0 coins: 0 left: right: 1 2 3 4 5 6 7 8 9 10 11... |
Test 11
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
1000 ******************************... |
correct output |
---|
999 999 |
user output |
---|
pos: 999 steps: 0 coins: 0 left: 998 997 996 995 994 993 ... |
Test 12
Group: 2
Verdict: WRONG ANSWER
input |
---|
10000 .......**........*...........*... |
correct output |
---|
10971 999 |
user output |
---|
pos: 999 steps: 0 coins: 0 left: 991 973 971 969 967 959 ... |
Test 13
Group: 2
Verdict: WRONG ANSWER
input |
---|
10000 *..*....*......*.....*..*........ |
correct output |
---|
9999 999 |
user output |
---|
pos: 9999 steps: 0 coins: 0 left: 9994 9978 9970 9963 9961... |
Test 14
Group: 2
Verdict: OUTPUT LIMIT EXCEEDED
input |
---|
10000 *.*.*...**.*...*....**.**.**..... |
correct output |
---|
18766 5000 |
user output |
---|
(empty) |
Test 15
Group: 2
Verdict: OUTPUT LIMIT EXCEEDED
input |
---|
10000 R*****************************... |
correct output |
---|
9999 9999 |
user output |
---|
(empty) |
Test 16
Group: 2
Verdict: OUTPUT LIMIT EXCEEDED
input |
---|
10000 ******************************... |
correct output |
---|
9999 9999 |
user output |
---|
(empty) |
Test 17
Group: 2
Verdict: ACCEPTED
input |
---|
200000 ................................. |
correct output |
---|
0 0 |
user output |
---|
0 0 |
Test 18
Group: 2
Verdict: OUTPUT LIMIT EXCEEDED
input |
---|
200000 ................................. |
correct output |
---|
299934 10000 |
user output |
---|
(empty) |
Test 19
Group: 2
Verdict: OUTPUT LIMIT EXCEEDED
input |
---|
200000 **.***....**..**.....***.*..*.... |
correct output |
---|
299998 100000 |
user output |
---|
(empty) |
Test 20
Group: 2
Verdict: WRONG ANSWER
input |
---|
200000 ******************************... |
correct output |
---|
0 0 |
user output |
---|
pos: 100000 steps: 0 coins: 0 left: 99999 99998 99997 99996 ... |
Test 21
Group: 2
Verdict: WRONG ANSWER
input |
---|
200000 R................................ |
correct output |
---|
133765 3 |
user output |
---|
pos: 0 steps: 0 coins: 0 left: right: 70142 84564 133765 ... |
Test 22
Group: 2
Verdict: OUTPUT LIMIT EXCEEDED
input |
---|
200000 R................................ |
correct output |
---|
199982 5000 |
user output |
---|
(empty) |
Test 23
Group: 2
Verdict: OUTPUT LIMIT EXCEEDED
input |
---|
200000 R*****************************... |
correct output |
---|
199999 199999 |
user output |
---|
(empty) |
Test 24
Group: 2
Verdict: OUTPUT LIMIT EXCEEDED
input |
---|
200000 ******************************... |
correct output |
---|
199999 199999 |
user output |
---|
(empty) |