This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define int long long
#define ms(v) memset(v, -1, sizeof v)
#define pb push_back
#define mp make_pair
#define sz size
#define ll long long int
#define pi pair <int,int>
#define itn int
#define fr first
#define sc second
#define srt(v) sort(v.begin(), v.end())
#define rvs(v) reverse(v.begin(), v.end())
#define mod 1000000007
#define N 4010
using namespace std;
int h, w;
char m[N][N];
int f, r;
int mark[N][N];
void ff(int a, int b, bool isf){
if(mark[a][b] != -1) return;
mark[a][b] = 1;
if(isf){
m[a][b] = 'R';
f--;
if(m[a-1][b] == 'F') ff(a-1, b, true);
if(m[a][b-1] == 'F') ff(a, b-1, true);
if(m[a+1][b] == 'F') ff(a+1, b, true);
if(m[a][b+1] == 'F') ff(a, b+1, true);
}
else{
m[a][b] = 'F';
r--;
if(m[a-1][b] == 'R') ff(a-1, b, false);
if(m[a][b-1] == 'R') ff(a, b-1, false);
if(m[a+1][b] == 'R') ff(a+1, b, false);
if(m[a][b+1] == 'R') ff(a, b+1, false);
}
return;
}
main(){
ios::sync_with_stdio(false); cin.tie(0);
cin >> h >> w;
for(int i = 1;i <= h;i++){
for(int j = 1;j <= w;j++){
cin >> m[i][j];
if(m[i][j] == 'F') f++;
if(m[i][j] == 'R') r++;
}
}
int res = 0;
while(f != 0 and r != 0){
res++;
ms(mark);
if(m[1][1] == 'F')ff(1, 1, true);
else ff(1, 1, false);
}
cout << ++res << "\n";
return 0;
}
Compilation message (stderr)
tracks.cpp:48:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
48 | main(){
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |