Submission #704794

#TimeUsernameProblemLanguageResultExecution timeMemory
704794willychanZoo (COCI19_zoo)C++14
45 / 110
2072 ms13116 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; //#include<bits/extc++.h> //__gnu_pbds char arr[1005][1005]; int tcnt = 0; int bcnt = 0; int n,m; int dx[4]={0,0,-1,1}; int dy[4] = {1,-1,0,0}; bool inbound(int x,int y){ return (x>=0 && x<n && y>=0 && y<m); } void dfs(int x,int y,char t,char re){ if(t=='B'){ bcnt--; tcnt++; }else{ tcnt--; bcnt++; } arr[x][y]=re; for(int i=0;i<4;i++){ if(!inbound(x+dx[i],y+dy[i])) continue; if(arr[x+dx[i]][y+dy[i]]==t){ dfs(x+dx[i],y+dy[i],t,re); } } } int main(){ ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>n>>m; for(int i=0;i<n;i++){ string s;cin>>s; for(int j=0;j<m;j++){ arr[i][j] = s[j]; if(s[j]=='B') bcnt++; if(s[j]=='T') tcnt++; } } if(arr[n-1][m-1]=='*'){ cout<<0<<"\n"; return 0; } int cnt = 1; while(bcnt && tcnt){ if(arr[n-1][m-1]=='B'){ dfs(n-1,m-1,'B','T'); }else{ dfs(n-1,m-1,'T','B'); } cnt++; /*for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cout<<arr[i][j]; } cout<<"\n"; }*/ } cout<<cnt<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...