| Task: | Robotti |
| Sender: | osmukka |
| Submission time: | 2024-11-04 18:01:46 +0200 |
| Language: | C++ (C++17) |
| Status: | COMPILE ERROR |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:18:12: error: 'coin_rooms' was not declared in this scope
18 | if(coin_rooms[i] == 'R')
| ^~~~~~~~~~
input/code.cpp:41:32: error: 'lcoin' was not declared in this scope; did you mean 'l_coin'?
41 | l_coin = l_coin >= 0 ? lcoin : 9999999;
| ^~~~~
| l_coin
input/code.cpp:51:19: error: request for member 'erase' in 'rooms', which is of non-class type 'char [200000]'
51 | rooms.erase(coin_rooms.begin()+robot_index);
| ^~~~~
input/code.cpp:51:25: error: 'coin_rooms' was not declared in this scope
51 | rooms.erase(coin_rooms.begin()+robot_index);
| ^~~~~~~~~~
input/code.cpp:58:19: error: request for member 'erase' in 'rooms', which is of non-class type 'char [200000]'
58 | rooms.erase(coin_rooms.begin()+robot_index);
|...Code
#include <iostream>
#include <vector>
#include <string>
int main()
{
int amount = 0;
char rooms[200000];
int robot_index = 0;
int steps = 0;
int coins = 0;
std::cin >> amount;
std::cin >> rooms;
for(int i = 0; i < amount; i++)
{
if(coin_rooms[i] == 'R')
{
robot_index = i;
}
}
int l_coin;
int r_coin;
int d_left;
int d_right;
while(1)
{
l_coin = robot_index-1;
r_coin = robot_index+1;
while(rooms[l_coin] != '*' and l_coin >= 0)
{
l_coin--;
}
while(rooms[r_coin] != '*' and r_coin <= amount)
{
r_coin++;
}
l_coin = l_coin >= 0 ? lcoin : 9999999;
r_coin = r_coin <= amount ? r_coin : -9999999;
d_left = robot_index - l_coin;
d_right = r_coin - robot_index;
if(d_left < d_right)
{
steps += d_left;
rooms.erase(coin_rooms.begin()+robot_index);
robot_index--;
coins++;
}
else if(d_right < d_left)
{
steps += d_right;
rooms.erase(coin_rooms.begin()+robot_index);
coins++;
}
else if(d_left == d_right)
{
break;
}
}
std::cout << steps << " " << coins << "\n";
return 0;
}
