제출 #635133

#제출 시각아이디문제언어결과실행 시간메모리
635133PagodePaivaTracks in the Snow (BOI13_tracks)C++14
2.19 / 100
2117 ms908480 KiB
#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;
}

컴파일 시 표준 에러 (stderr) 메시지

tracks.cpp:48:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   48 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...