Submission #556876

#TimeUsernameProblemLanguageResultExecution timeMemory
556876HanksburgerTracks in the Snow (BOI13_tracks)C++17
100 / 100
801 ms972932 KiB
#include <bits/stdc++.h> using namespace std; #define si short int #define pii pair<si, si> #define fi first #define se second pii dir[4]={{0, 1}, {0, -1}, {1, 0}, {-1, 0}}; vector<pii > vec[2]; string a[4000]; si n, m; int ans; void dfs(pii u) { char x=a[u.fi][u.se]; a[u.fi][u.se]='.'; for (pii i:dir) { pii v=u; v.fi+=i.fi; v.se+=i.se; if (v.fi>=0 && v.fi<n && v.se>=0 && v.se<m && a[v.fi][v.se]!='.') { if (a[v.fi][v.se]==x) dfs(v); else vec[(ans&1)^1].push_back(v); } } } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for (si i=0; i<n; i++) cin >> a[i]; vec[0].push_back({0, 0}); while (vec[ans&1].size()) { for (pii u:vec[ans&1]) dfs(u); vec[ans&1].clear(); ans++; } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...