Submission
Status:
PPP-P-P
Score: 75
User: Winzzwz
Problemset: Sirabyrinth 1
Language: cpp
Time: 0.002 second
Submitted On: 2025-03-05 17:38:21
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n,m,si,sj,di[4] = {1,-1,0,0}, dj[4] = {0,0,-1,1}, vis[110][110];
char t[110][110], dd[4] = {'D','U','L','R'};
void dfs(int i, int j, string path) {
if (i == n || i == 1 || j == m || j == 1) {
cout << path.size() << "\n" << path;
exit(0);
}
for (int k = 0; k < 4; k++) {
int ni = i + di[k];
int nj = j + dj[k];
if (t[ni][nj] == '.' && vis[ni][nj] == 0) {
vis[ni][nj] = 1;
dfs(ni,nj,path+dd[k]);
}
}
}
int main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> t[i][j];
if (t[i][j] == 'S') {si = i; sj = j;}
}
}
vis[si][sj] = 1;
dfs(si,sj,"");
return 0;
}