| Task: | Abandoned warehouse |
| Sender: | aalto26bm_017 |
| Submission time: | 2026-09-07 17:01:06 +0300 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | WRONG ANSWER | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.09 s | details |
| #7 | RUNTIME ERROR | 0.52 s | details |
| #8 | RUNTIME ERROR | 0.54 s | details |
| #9 | RUNTIME ERROR | 0.54 s | details |
| #10 | RUNTIME ERROR | 0.56 s | details |
| #11 | RUNTIME ERROR | 0.01 s | details |
| #12 | ACCEPTED | 0.01 s | details |
| #13 | RUNTIME ERROR | 0.48 s | details |
| #14 | RUNTIME ERROR | 0.00 s | details |
| #15 | ACCEPTED | 0.00 s | details |
| #16 | ACCEPTED | 0.24 s | details |
Code
#include <bits/stdc++.h>
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
long long n, m;
std::cin >> n >> m;
int start = 0;
int end = 0;
std::vector<char> map(n*m);
for (int i = 0; i < n*m; i++) {
char f;
std::cin >> f;
map[i] = f;
if (f == 'A') start = i;
if (f == 'B') end = i;
}
std::vector<std::vector<int>> graph(n*m);
for (int i = 0; i < n*m; i++) {
if (map[i] == '#') continue;
if (i >= m && map[i - m] != '#') {
graph[i].push_back(i - m);
}
if (i % m != 0 && map[i - 1] != '#') {
graph[i].push_back(i - 1);
}
if (i % m != m - 1 && map[i + 1] != '#') {
graph[i].push_back(i + 1);
}
if (i <= (n-1)*m && map[i + m] != '#') {
graph[i].push_back(i + m);
}
}
std::vector visited(n*m, false);
std::vector<std::string> path(n*m, "");
visited[start]=true;
std::stack<int> stack;
stack.push(start);
while (!stack.empty()) {
const int v = stack.top();
stack.pop();
for (int w : graph[v]) {
if (!visited[w]) {
visited[w] = true;
if (w == v-1) {
path[w] = path[v] + 'L';
} else if (w == v+1) {
path[w] = path[v] + 'R';
} else if (w == v-m) {
path[w] = path[v] + 'U';
} else if (w == v+m) {
path[w] = path[v] + 'D';
}
if (w == end) {
std::cout << "YES\n" << path[end].size() << '\n' << path[end] << std::endl;
return 0;
}
stack.push(w);
}
}
}
std::cout << "NO" << std::endl;
return 0;
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 10 10 ##.A###### #.##.##.## #####..### .######### ... |
| correct output |
|---|
| NO |
| user output |
|---|
| NO |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 10 10 B#..##.#.. #....A##.. #.....#..# .#......#. ... |
| correct output |
|---|
| NO |
| user output |
|---|
| NO |
Test 3
Verdict: WRONG ANSWER
| input |
|---|
| 10 10 ...#..A.#. ....B...## ...#...... .......... ... |
| correct output |
|---|
| YES 3 LLD |
| user output |
|---|
| YES 27 DDDLLDDDDDDLLLUUULUURRUUURR |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 10 10 .#........ .......... .......... ........#. ... |
| correct output |
|---|
| YES 1 R |
| user output |
|---|
| YES 1 R |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 10 10 .......... .......... .......... .......... ... |
| correct output |
|---|
| YES 3 RDD |
| user output |
|---|
| YES 3 DDR |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 ##.###..######.#########.###.#... |
| correct output |
|---|
| NO |
| user output |
|---|
| NO |
Test 7
Verdict: RUNTIME ERROR
| input |
|---|
| 1000 1000 ####.#.###....#.......##.##.#.... |
| correct output |
|---|
| YES 626 LLLDDRDDDDLDLDDLLLLLDDDDLLDLDL... |
| user output |
|---|
| (empty) |
Test 8
Verdict: RUNTIME ERROR
| input |
|---|
| 1000 1000 ....#.##......#....#......#...... |
| correct output |
|---|
| YES 364 LULULLULLLULLLLLUULLLLUUULLLLL... |
| user output |
|---|
| (empty) |
Test 9
Verdict: RUNTIME ERROR
| input |
|---|
| 1000 1000 .................#......#........ |
| correct output |
|---|
| YES 1003 LLLLLLLLLLLLLLLLLLLLLLLLLDLLLL... |
| user output |
|---|
| (empty) |
Test 10
Verdict: RUNTIME ERROR
| input |
|---|
| 1000 1000 ................................. |
| correct output |
|---|
| YES 947 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL... |
| user output |
|---|
| (empty) |
Test 11
Verdict: RUNTIME ERROR
| input |
|---|
| 1000 3 A#B .#. .#. .#. ... |
| correct output |
|---|
| YES 2000 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD... |
| user output |
|---|
| (empty) |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 3 1000 A................................ |
| correct output |
|---|
| YES 2000 RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
| user output |
|---|
| YES 2000 RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
Test 13
Verdict: RUNTIME ERROR
| input |
|---|
| 999 999 A#...#...#...#...#...#...#...#... |
| correct output |
|---|
| YES 499998 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD... |
| user output |
|---|
| (empty) |
Test 14
Verdict: RUNTIME ERROR
| input |
|---|
| 1 3 A.B |
| correct output |
|---|
| YES 2 RR |
| user output |
|---|
| (empty) |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 2 2 ## AB |
| correct output |
|---|
| YES 1 R |
| user output |
|---|
| YES 1 R |
Test 16
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 A................................ |
| correct output |
|---|
| YES 1998 RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
| user output |
|---|
| YES 1998 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD... |
