| Task: | Kamen |
| Sender: | henrikaalto |
| Submission time: | 2019-07-27 20:17:16 +0300 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 100 |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | details |
| #2 | ACCEPTED | 0.01 s | details |
| #3 | ACCEPTED | 0.01 s | details |
| #4 | ACCEPTED | 0.01 s | details |
| #5 | ACCEPTED | 0.01 s | details |
| #6 | ACCEPTED | 0.01 s | details |
| #7 | ACCEPTED | 0.05 s | details |
| #8 | ACCEPTED | 0.07 s | details |
| #9 | ACCEPTED | 0.09 s | details |
| #10 | ACCEPTED | 0.12 s | details |
Code
#include <bits/stdc++.h>
using namespace std;
struct pos {
int y, x;
pos(int Y, int X)
{
y = Y;
x = X;
}
};
#define N 30100
#define M 35
char board[N][M];
vector<pos> path[M];
int n, m;
int empty(int y, int x)
{
return board[y][x] == '.';
}
void gen(int y, int x, vector<pos> &vec)
{
vec.push_back(pos(y, x));
if (y == n || board[y + 1][x] == 'X') {
return ;
}
if (empty(y + 1, x)) {
gen(y + 1, x, vec);
}
else {
if (empty(y, x - 1) && empty(y + 1, x - 1)) {
gen(y + 1, x - 1, vec);
}
else if (empty(y, x + 1) && empty(y + 1, x + 1)) {
gen(y + 1, x + 1, vec);
}
}
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
cin >> board[i][j];
}
}
for (int j = 1; j <= m; ++j) {
gen(1, j, path[j]);
}
int amt;
cin >> amt;
for (int it = 1; it <= amt; ++it) {
int x;
cin >> x;
#define k path[x].back()
while (board[k.y][k.x] == 'O') {
path[x].pop_back();
}
pos z = path[x].back();
path[x].pop_back();
gen(z.y, z.x, path[x]);
assert(board[k.y][k.x] == '.');
board[k.y][k.x] = 'O';
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
cout << board[i][j];
}
cout << "\n";
}
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 5 5
..... ..... ..X.. ..... ... |
| correct output |
|---|
| .....
.OO.. OOX.. OO... OOOO. |
| user output |
|---|
| ..... .OO.. OOX.. OO... OOOO. |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 6 20
.................... ..........X.X....... X...XX.............X ...XX..........X.... ... |
| correct output |
|---|
| ....................
O...O.....X.X......O X..OXX.........O...X ...XX..........X.... ......OO.O....O...O. ... |
| user output |
|---|
| .................... O...O.....X.X......O X..OXX.........O...X ...XX..........X.... ...... ... Truncated |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10 10
.......... .......... .XX....X.. .......... ... |
| correct output |
|---|
| ..........
.OO....O.. .XX....X.. .......... .....O...O ... |
| user output |
|---|
| .......... .OO....O.. .XX....X.. .......... .....O...O ... Truncated |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 15 15
............... ............... ............... ............... ... |
| correct output |
|---|
| ...............
............... ............... ............... ......O........ ... |
| user output |
|---|
| ............... ............... ............... ............... ......O........ ... Truncated |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 30 7
....... ....... ......X ....X.. ... |
| correct output |
|---|
| .......
.OOO..O OOOOO.X OOOOX.. OXXXX.. ... |
| user output |
|---|
| ....... .OOO..O OOOOO.X OOOOX.. OXXXX.. ... Truncated |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 30 30
................................. |
| correct output |
|---|
| ................................. |
| user output |
|---|
| .............................. ...........O.........O........ ...........X.........X.O...O ... Truncated |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 30000 5
..... ..... ..... ..... ... |
| correct output |
|---|
| .....
..... ..... ..... .O... ... |
| user output |
|---|
| ..... ..... ..... ..... .O... ... Truncated |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 30000 13
............. ............. ...XX...XX... ............. ... |
| correct output |
|---|
| .............
...OO...OO... ...XX...XX... O............ OO...OO...OO. ... |
| user output |
|---|
| ............. ...OO...OO... ...XX...XX... O............ OO...OO...OO. ... Truncated |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 30000 21
..................... ..................... ..................... ..................... ... |
| correct output |
|---|
| .....................
..................... ..................... ..................... ..................... ... |
| user output |
|---|
| ..................... ..................... ..................... ..................... .. ... Truncated |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 30000 30
................................. |
| correct output |
|---|
| ................................. |
| user output |
|---|
| .............................. .............................. ............................ ... Truncated |
