| Task: | Abandoned warehouse |
| Sender: | aalto26bm_030 |
| Submission time: | 2026-09-07 17:30:09 +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.01 s | details |
| #6 | ACCEPTED | 0.03 s | details |
| #7 | ACCEPTED | 0.08 s | details |
| #8 | ACCEPTED | 0.07 s | details |
| #9 | ACCEPTED | 0.06 s | details |
| #10 | ACCEPTED | 0.05 s | details |
| #11 | ACCEPTED | 0.01 s | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | ACCEPTED | 0.07 s | details |
| #14 | ACCEPTED | 0.00 s | details |
| #15 | ACCEPTED | 0.00 s | details |
| #16 | ACCEPTED | 0.05 s | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:110:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
110 | for (int i=0; i<path.size()-1; i++) {
| ~^~~~~~~~~~~~~~Code
#include <bits/stdc++.h>
#define fast ios::sync_with_stdio(0); cin.tie(0);
#define fill(arr,val) memset(arr,val,sizeof(arr))
#define YES cout << "YES\n"
#define NO cout << "NO\n"
#define ll long long
#define fi first
#define se second
#define pb push_back
#define pf push_front
#define ii pair<int,int>
#define dq deque<int>
#define nend '\n'
using namespace std;
const ll inf=1e18;
const int dx[]={1,0,-1,0};
const int dy[]={0,1,0,-1};
const int N=1005;
int a[N][N],dist[N][N],posx,posy,n,m;
char x;
bool vs[N][N];
ii endd;
ii par[N][N];
ii start;
queue<ii>q;
vector<ii>ans;
ii dsu(ii startt) {
if (startt!=par[startt.fi][startt.se]) {
ans.pb(par[startt.fi][startt.se]);
return dsu(par[startt.fi][startt.se]);
}else {
return startt;
}
}
void bfs(ii start) {
for (int i=1; i<=n; i++) {
for (int j=1; j<=m; j++) {
dist[i][j]=1e9;
}
}
dist[start.fi][start.se]=0;
q.push(start);
while (!q.empty()) {
int x=q.front().fi, y=q.front().se;
q.pop();
for (int i=0; i<4; i++) {
int u=x+dx[i];
int v=y+dy[i];
if (dist[u][v]>dist[x][y]+1 && u<=n && u>0 && v<=m && v>0 && a[u][v]!=0) {
dist[u][v]=dist[x][y]+1;
// if (u==endd.fi and v==endd.se) {
// posx=u;
// posy=v;
// par[u][v]=ii(x,y); /// x y la cha u v
// }
par[u][v]=ii(x,y);
q.push(ii(u,v));
}
}
}
}
vector<ii>path;
int main() {
// freopen("input.txt","r",stdin);
// freopen("output.txt","w",stdout);
fast;
cin >> n >> m;
for (int i=1; i<=n; i++) {
for (int j=1; j<=m; j++) {
cin >> x;
if (x=='.' || x=='A' || x=='B')
a[i][j]=1;
else a[i][j]=0;
if (x=='A') {
start=ii(i,j);
}
if (x=='B') {
endd=ii(i,j);
}
// vs[i][j]=false;
par[i][j]=ii(i,j);
}
}
// cout << endd.fi << ' ' << endd.se << " end" << nend;
// for (int i=1; i<=n; i++) {
// for (int j=1; j<=m; j++) {
// cout << a[i][j] << ' ';
// }
// cout << nend;
// }
bfs(start);
// cout << endd.fi << ' ' << endd.se << nend;
// cout << dist[endd.fi][endd.se];
if (dist[endd.fi][endd.se]!=1e9) {
YES;
cout << dist[endd.fi][endd.se] << nend;
// cout << dist[posx][posy] << nend;
ii rev;
int u=endd.fi, v=endd.se;
// cout << u << ' ' << v << nend;
rev={u,v};
path.pb(rev);
while (rev!=start) {
rev={par[rev.fi][rev.se].fi,par[rev.fi][rev.se].se};
path.pb(rev);
// cout << rev.fi << ' ' << rev.se << nend;
}
reverse(path.begin(),path.end());
for (int i=0; i<path.size()-1; i++) {
///L
if (path[i+1].fi == path[i].fi-1) {
cout << 'U';
}else if (path[i+1].fi==path[i].fi+1) {
cout << 'D';
}else if (path[i+1].se==path[i].se+1) {
cout << 'R';
}else if (path[i+1].se==path[i].se-1) {
cout << 'L';
}
}
}else NO;
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: ACCEPTED
| input |
|---|
| 10 10 ...#..A.#. ....B...## ...#...... .......... ... |
| correct output |
|---|
| YES 3 LLD |
| user output |
|---|
| YES 3 DLL |
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: ACCEPTED
| input |
|---|
| 1000 1000 ####.#.###....#.......##.##.#.... |
| correct output |
|---|
| YES 626 LLLDDRDDDDLDLDDLLLLLDDDDLLDLDL... |
| user output |
|---|
| YES 626 RDDDDDLDDDDLDDDDLLLLLLDDLLLDDL... |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 ....#.##......#....#......#...... |
| correct output |
|---|
| YES 364 LULULLULLLULLLLLUULLLLUUULLLLL... |
| user output |
|---|
| YES 364 UUUUUULUUUUUUUUUUULLLUUUULLUUU... |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 .................#......#........ |
| correct output |
|---|
| YES 1003 LLLLLLLLLLLLLLLLLLLLLLLLLDLLLL... |
| user output |
|---|
| YES 1003 DDDDDDDDDDDDDDDDDLDDDDDDDDDDDD... |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 ................................. |
| correct output |
|---|
| YES 947 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL... |
| user output |
|---|
| YES 947 UUUUUUUUUUUUUUUUUUUUUUUUUUUUUU... |
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 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD... |
