Submission #1003361

#TimeUsernameProblemLanguageResultExecution timeMemory
1003361Double_SlashZoo (COCI19_zoo)C++17
110 / 110
59 ms8788 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int, int> pint; const int D[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; int h, w, grid[1000][1000]; bool seen[1000][1000]; queue<pint> q[3]; int main() { cin >> h >> w; for (int i = 0; i < h; ++i) { for (int j = 0; j < w; ++j) { char c; cin >> c; if (c == 'T') grid[i][j] = 1; else if (c == 'B') grid[i][j] = 2; } } int n = 0; q[grid[0][0]].emplace(0, -1); for (int type = grid[0][0]; not q[type].empty(); ++n, type = 3 - type) { while (not q[type].empty()) { auto [x, y] = q[type].front(); q[type].pop(); for (int i = 0; i < 4; ++i) { int x1 = x + D[i][0], y1 = y + D[i][1]; if (x1 >= 0 and x1 < h and y1 >= 0 and y1 < w) { if (not seen[x1][y1]) { seen[x1][y1] = true; q[grid[x1][y1]].emplace(x1, y1); } } } } } cout << n; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...