Submission
Status:
PPPPPPP
Score: 100
User: Monasm
Problemset: Sirabyrinth 1
Language: cpp
Time: 0.002 second
Submitted On: 2024-11-14 23:50:14
#include <bits/stdc++.h>
#define pii pair<int,int>
using namespace std;
int gy[]={0,0,-1,1};
int gx[]={1,-1,0,0};
char op[]={'D','U','L','R'};
int main(){
int n,m,sx,sy,ex,ey;cin>>n>>m;
char adj[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>adj[i][j];
if(adj[i][j]=='S'){
sx = i;sy=j;
}
}
}
queue<pii> q;
q.push({sx,sy});
while(!q.empty()){
int nx=q.front().first;
int ny=q.front().second;
q.pop();
if(nx==0||nx==n-1||ny==0||ny==m-1){
ex=nx;ey=ny;break;
}
for(int i=0;i<4;i++){
int x=nx+gx[i];
int y=ny+gy[i];
if(0<=x&&x<n&&0<=y&&y<m&&adj[x][y]=='.'){
adj[x][y]=op[i];
q.push({x,y});
}
}
}
string s;
while(adj[ex][ey]!='S'){
s+=adj[ex][ey];
for(int i=0;i<4;i++){
if(adj[ex][ey]==op[i]){
ex-=gx[i];
ey-=gy[i];
break;
}
}
}
cout<<s.size()<<endl;
reverse(s.begin(),s.end());
cout<<s;
}