제출 #205741

#제출 시각아이디문제언어결과실행 시간메모리
205741mayhoubsalehZoo (COCI19_zoo)C++14
45 / 110
2062 ms7992 KiB
#include <bits/stdc++.h> #define pb push_back #define ll long long #define mid (l+r)/2 #define left 2*i+1 #define righ 2*i+2 using namespace std; int n,m,cnt; char c[1010][1010]; int dx[]={1,-1,0,0}; int dy[]={0,0,1,-1}; int dfs(int x,int y){ int ret=1; char cur=c[x][y]; if(c[x][y]=='B')c[x][y]='T'; else c[x][y]='B'; for(int i=0;i<4;i++){ int tox=x+dx[i],toy=y+dy[i]; if(tox<1||tox>n||toy<1||toy>m)continue; if(cur!=c[tox][toy])continue; ret+=dfs(tox,toy); } return ret; } int ans; int main() { cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>c[i][j]; if(c[i][j]!='*')cnt++; } } while(dfs(1,1)!=cnt)ans++; cout<<ans+1<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...