Submission #1130840

#TimeUsernameProblemLanguageResultExecution timeMemory
1130840dragdamTracks in the Snow (BOI13_tracks)C++17
2.19 / 100
783 ms589128 KiB
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 4e3+5;


int n, m, br = 0, ans = 0;
string a[MAXN];

void dfs(int i, int j){
    if(i<0||j<0||i>=n||j>=m) return;
    if(a[i][j]=='F'){
        a[i][j] = '.';
    }
    else return;
    dfs(i-1,j);
    dfs(i+1,j);
    dfs(i,j-1);
    dfs(i,j+1);
}

void solve(){
    cin >> n >> m;
    for(int i = 0; i < n; ++i){
        cin >> a[i];
    }
    if(a[0][0]=='R'){
        for(int i = 0; i < n; ++i){
            for(int j = 0; j < m; ++j){
                if(a[i][j]=='R') a[i][j] = 'F';
                else if(a[i][j]=='F') a[i][j] = 'R';
            }
        }
    }
    for(int i = 0; i < n; ++i){
        for(int j = 0; j < m; ++j){
            if(a[i][j]=='F'){
                ++ans;
                ++br;
                dfs(i,j);
            }
            else if(a[i][j]=='.') ++br;
        }
    }
    cout << min(ans,2)+(br!=n*m) << '\n';
}

int32_t main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    int32_t qqq=1;
    //cin >> qqq;
    while(qqq--)solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...