| 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) |
