Submission

Status:
PPP-P-P

Score: 75

User: Winzzwz

Problemset: Sirabyrinth 1

Language: cpp

Time: 0.002 second

Submitted On: 2025-03-05 17:42:19

#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] = {'U','D','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;
}