Submission #1234585

#TimeUsernameProblemLanguageResultExecution timeMemory
1234585darshitmittal777Tracks in the Snow (BOI13_tracks)C++20
47.50 / 100
2111 ms766444 KiB
#include<bits/stdc++.h> #define ll long long #define ull unsigned long long #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define MIN(a, b) ((a) < (b) ? (a) : (b)) using namespace std; void solve(vector<vector<char>> &grid,char cur,int x, int y) { if(x>=grid.size()||x<0||y>=grid[0].size()||y<0) return; if(grid[x][y]!=cur) return; grid[x][y] = (grid[x][y]=='F')?'R':'F'; solve(grid,cur,x,y+1); solve(grid,cur,x,y-1); solve(grid,cur,x+1,y); solve(grid,cur,x-1,y); } int single(vector<vector<char>> &grid) { int c1 = 0,c2=0; for(int i=0;i<grid.size();i++) { for(int j=0;j<grid[0].size();j++) { if(grid[i][j]=='F') c1++; else if(grid[i][j]=='R') c2++; } } if(c1==0&&c2==0) return -1; else if(c1==0||c2==0) return 1; else return 0; } int main() { int h,w;cin>>h>>w; vector<vector<char>> grid(h,vector<char>(w)); for(int i=0;i<h;i++) { for(int j=0;j<w;j++) { cin>>grid[i][j]; } } if(single(grid)==-1) { cout<<0<<endl; return 0; } int ans = 1; while(single(grid)==0) { solve(grid,grid[0][0],0,0); ans++; } cout<<ans<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...