Submission #1313802

#TimeUsernameProblemLanguageResultExecution timeMemory
1313802NipphitchTracks in the Snow (BOI13_tracks)C++20
100 / 100
434 ms119208 KiB
#include <bits/stdc++.h> using namespace std; const int N=4005; const int dy[]={-1,1,0,0}; const int dx[]={0,0,-1,1}; int n,m,d[N][N],ans; char c[N][N]; deque <pair <int,int>> q; bool inside(int y,int x){ if(y<1 || y>n || x<1 || x>m) return false; else return true; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin >> c[i][j]; d[1][1]=1; q.push_back({1,1}); while(!q.empty()){ auto [y,x]=q.front(); q.pop_front(); ans=max(ans,d[y][x]); for(int i=0;i<4;i++){ int yy=y+dy[i],xx=x+dx[i]; if(!inside(yy,xx) || d[yy][xx]!=0 || c[yy][xx]=='.') continue; if(c[yy][xx]==c[y][x]){ d[yy][xx]=d[y][x]; q.push_front({yy,xx}); } else{ d[yy][xx]=d[y][x]+1; q.push_back({yy,xx}); } } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...