Submission #1274257

#TimeUsernameProblemLanguageResultExecution timeMemory
1274257ahmet_efendiTracks in the Snow (BOI13_tracks)C++20
100 / 100
880 ms239160 KiB
// // Created by Ahmet Efendioğlu on 29.09.2025. // #include<bits/stdc++.h> using namespace std; #define int long long const int dx[4]={-1,0,0,1}; const int dy[4]={0,1,-1,0}; int h,w; vector<string>grid; int inside(int a,int b) { if (a>=0 && a<h && b>=0 && b<w && grid[a][b]!='.') { return 1; } return 0; } int32_t main() { cin>>h>>w; grid.resize(h); int visited[h][w]; for (int i=0;i<h;i++) { for (int j=0;j<w;j++) { visited[i][j]=0; } } for (int i=0;i<h;i++) { cin>>grid[i]; } int res=0; deque<pair<int,int>>q; visited[0][0]=1; q.push_front({0,0}); while (!q.empty()) { auto u=q.front(); q.pop_front(); res=max(res,visited[u.first][u.second]); for (int i=0;i<=3;i++) { int a=dx[i]+u.first; int b=dy[i]+u.second; if (inside(a,b) && visited[a][b]==0) { if (grid[u.first][u.second] == grid[a][b]) { visited[a][b]=visited[u.first][u.second]; q.push_front({a,b}); } else { visited[a][b]=visited[u.first][u.second]+1; q.push_back({a,b}); } } } } cout<<res<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...