Submission #1315286

#TimeUsernameProblemLanguageResultExecution timeMemory
1315286lananhTracks in the Snow (BOI13_tracks)C++20
100 / 100
389 ms112176 KiB
#include <iostream> #include <vector> #include <deque> #include <string> #include <algorithm> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int h, w; if (!(cin >> h >> w)) return 0; vector<string> a(h); for (int i = 0; i < h; i++) cin >> a[i]; vector<vector<int>> d(h, vector<int>(w, 0)); deque<pair<int, int>> q; q.push_back({0, 0}); d[0][0] = 1; int m = 1; int x[] = {1, -1, 0, 0}; int y[] = {0, 0, 1, -1}; while (!q.empty()) { pair<int, int> p = q.front(); q.pop_front(); int r = p.first; int c = p.second; if (d[r][c] > m) m = d[r][c]; for (int i = 0; i < 4; i++) { int u = r + x[i]; int v = c + y[i]; if (u >= 0 && u < h && v >= 0 && v < w && a[u][v] != '.' && d[u][v] == 0) { if (a[u][v] == a[r][c]) { d[u][v] = d[r][c]; q.push_front({u, v}); } else { d[u][v] = d[r][c] + 1; q.push_back({u, v}); } } } } cout << m << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...