제출 #556759

#제출 시각아이디문제언어결과실행 시간메모리
556759HanksburgerTracks in the Snow (BOI13_tracks)C++17
78.13 / 100
807 ms1048576 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, tmp; char a[4001][4001]; si n, m, 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 && v.fi<=n && v.se && v.se<=m && a[v.fi][v.se]!='.') { if (a[v.fi][v.se]==x) dfs(v); else tmp.push_back(v); } } } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for (si i=1; i<=n; i++) for (si j=1; j<=m; j++) cin >> a[i][j]; tmp.push_back({1, 1}); while (!tmp.empty()) { vec=tmp; tmp.clear(); for (pii u:vec) dfs(u); ans++; } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...