제출 #1370262

#제출 시각아이디문제언어결과실행 시간메모리
1370262FaresSTHZoo (COCI19_zoo)C++20
45 / 110
2094 ms16052 KiB
#include"bits/stdc++.h"
using namespace std;
using ll=long long;
#define S second
#define F first
const int dx[]={0,0,1,-1};
const int dy[]={1,-1,0,0};
char g[1005][1005];
int main(){
    cin.tie(0)->sync_with_stdio(0);
    int n,m;
    cin>>n>>m;
    int no=0;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>g[i][j];
            if(g[i][j]!='*')no++;
        }
    }
    function<int(int,int,int)>dfs=[&](int i,int j,char c){
        int res=1;
        g[i][j]=c=='T'?'B':'T';
        for(int d=0;d<4;d++){
            int ni=i+dx[d];
            int nj=j+dy[d];
            if(ni>=n||ni<0||nj>=m||nj<0)continue;
            if(g[ni][nj]==c)res+=dfs(ni,nj,c);
        }
        return res;
    };
    for(int ans=1;ans<=n;ans++){
        if(dfs(0,0,g[0][0])==no)return cout<<ans,0;
    }
    return -1;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…