Submission #757753

#TimeUsernameProblemLanguageResultExecution timeMemory
757753drdilyorTracks in the Snow (BOI13_tracks)C++17
0 / 100
917 ms975012 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; signed main() { cin.tie(0)->sync_with_stdio(0); int n, m; cin >> n >> m; vector<string> mat(n); for (string& s : mat) { cin >> s; s.resize(n); } int di[]{0, 0, -1, 1}; int dj[]{-1, 1, 0, 0}; vector vis(n, vector<bool>(m)); int cnt = 0, res = 0; auto dfs = [&](auto& dfs, int i, int j, int d)->void { res = max(res, d); cnt++; //if (!(cnt & (1<<20)-1)) cout << cnt << endl; vis[i][j] = 1; for (int d = 0; d < 4; d++) { int ei = i + di[d]; int ej = j + dj[d]; if (0 <= ei && ei < n && 0 <= ej && ej < m && !vis[ei][ej] && mat[ei][ej] == mat[i][j]) { dfs(dfs, ei, ej, d); } } for (int d = 0; d < 4; d++) { int ei = i + di[d]; int ej = j + dj[d]; if (0 <= ei && ei < n && 0 <= ej && ej < m && !vis[ei][ej] && mat[ei][ej] == mat[i][j]) { dfs(dfs, ei, ej, d+1); } } }; dfs(dfs, 0, 0, 1); cout << res << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...