| Task: | Abandoned warehouse |
| Sender: | aalto26bm_003 |
| Submission time: | 2026-09-07 16:59:38 +0300 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.04 s | details |
| #7 | ACCEPTED | 0.14 s | details |
| #8 | ACCEPTED | 0.15 s | details |
| #9 | ACCEPTED | 0.15 s | details |
| #10 | ACCEPTED | 0.15 s | details |
| #11 | ACCEPTED | 0.01 s | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | ACCEPTED | 0.11 s | details |
| #14 | ACCEPTED | 0.00 s | details |
| #15 | ACCEPTED | 0.00 s | details |
| #16 | ACCEPTED | 0.15 s | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:92:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
92 | for (int i = 0; i < steps.size(); i++) cout << steps[i];
| ~~^~~~~~~~~~~~~~
input/code.cpp:68:21: warning: 'endi' may be used uninitialized [-Wmaybe-uninitialized]
68 | if (mindist[endi][endj] == inf) {
| ^
input/code.cpp:13:9: note: 'endi' was declared here
13 | int endi;
| ^~~~
input/code.cpp:68:27: warning: 'endj' may be used uninitialized [-Wmaybe-uninitialized]
68 | if (mindist[endi][endj] == inf) {
| ^
input/code.cpp:14:9: note: 'endj' was declared here
14 | int endj;
| ^~~~
In file included from /usr/include/c++/13/bits/uses_allocator_args.h:38,
from /usr/include/c++/13/bits/memory_resource.h:41,...Code
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
int n, m;
cin >> n >> m;
int starti;
int startj;
int endi;
int endj;
vector<vector<int>> grid(n, vector<int>(m, -1));
for (int i = 0; i < n; i++) {
string s;
cin >> s;
for (int j = 0; j < m; j++) {
if (s[j] == 'A') {
starti = i;
startj = j;
grid[i][j] = 0;
} else if (s[j] == 'B') {
endi = i;
endj = j;
grid[i][j] = 0;
} else {
grid[i][j] = s[j] == '#' ? 1 : 0;
}
}
}
// distance, i, j
queue<tuple<int, int, int, int, int>> q;
q.push(make_tuple(0, starti, startj, -1, -1));
int inf = 1'000'000'000;
vector<vector<int>> mindist(n, vector<int>(m, inf));
vector<vector<pair<int, int>>> coming(n, vector<pair<int, int>>(m));
while (!q.empty()) {
auto [d, i, j, fi, fj] = q.front();
q.pop();
if (d >= mindist[i][j]) continue;
mindist[i][j] = d;
coming[i][j] = make_pair(fi, fj);
vector<pair<int, int>> v = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
for (auto &[di, dj] : v) {
int ni = i+di;
int nj = j+dj;
if (ni < 0 || ni >= n || nj < 0 || nj >= m) continue;
if (grid[ni][nj] == 1) continue;
q.push(make_tuple(d+1, ni, nj, i, j));
}
}
if (mindist[endi][endj] == inf) {
cout << "NO" << endl;
return 0;
}
vector<char> steps;
map<pair<int, int>, char> ma;
ma[make_pair(0, 1)] = 'R';
ma[make_pair(1, 0)] = 'D';
ma[make_pair(-1, 0)] = 'U';
ma[make_pair(0, -1)] = 'L';
int ci = endi;
int cj = endj;
while (ci != starti || cj != startj) {
auto [fi, fj] = coming[ci][cj];
steps.push_back(ma[make_pair(ci-fi, cj-fj)]);
ci = fi; cj = fj;
}
cout << "YES" << endl;
cout << steps.size() << endl;
reverse(steps.begin(), steps.end());
for (int i = 0; i < steps.size(); i++) cout << steps[i];
cout << endl;
}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: ACCEPTED
| input |
|---|
| 10 10 ...#..A.#. ....B...## ...#...... .......... ... |
| correct output |
|---|
| YES 3 LLD |
| user output |
|---|
| YES 3 LLD |
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 RDD |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 ##.###..######.#########.###.#... |
| correct output |
|---|
| NO |
| user output |
|---|
| NO |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 ####.#.###....#.......##.##.#.... |
| correct output |
|---|
| YES 626 LLLDDRDDDDLDLDDLLLLLDDDDLLDLDL... |
| user output |
|---|
| YES 626 RDDLDLLDDDLDLDDLLLLLDDDDLLDLDL... |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 ....#.##......#....#......#...... |
| correct output |
|---|
| YES 364 LULULLULLLULLLLLUULLLLUUULLLLL... |
| user output |
|---|
| YES 364 LULULLULLLULLLLLUULLLLUUULLLLL... |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 .................#......#........ |
| correct output |
|---|
| YES 1003 LLLLLLLLLLLLLLLLLLLLLLLLLDLLLL... |
| user output |
|---|
| YES 1003 LLLLLLLLLLLLLLLLLLLLLLLLLDLLLL... |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 ................................. |
| correct output |
|---|
| YES 947 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL... |
| user output |
|---|
| YES 947 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL... |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 1000 3 A#B .#. .#. .#. ... |
| correct output |
|---|
| YES 2000 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD... |
| user output |
|---|
| YES 2000 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD... |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 3 1000 A................................ |
| correct output |
|---|
| YES 2000 RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
| user output |
|---|
| YES 2000 RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 999 999 A#...#...#...#...#...#...#...#... |
| correct output |
|---|
| YES 499998 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD... |
| user output |
|---|
| YES 499998 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD... |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 1 3 A.B |
| correct output |
|---|
| YES 2 RR |
| user output |
|---|
| YES 2 RR |
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 RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
