Submission #1202313

#TimeUsernameProblemLanguageResultExecution timeMemory
1202313zarcxTracks in the Snow (BOI13_tracks)C++20
2.19 / 100
637 ms93552 KiB
#include <bits/stdc++.h> using namespace std; int main() { int h, w; cin >> h >> w; vector<string> grid(h); for(string& s : grid) cin >> s; vector<vector<int>> visited(h, vector<int>(w, 0)); vector<pair<int, int>> dir = { {1, 0}, {-1, 0}, {0, 1}, {0, -1} }; int ans = 0; for(int i = 0; i < h; i++) { for(int j = 0; j < w; j++) { if(visited[i][j] || grid[i][j] == '.') continue; visited[i][j] = 1; set<int> count; queue<pair<int, int>> q; count.insert(grid[i][j]); q.push({i, j}); while(!q.empty()) { auto [y, x] = q.front(); q.pop(); for(const auto& [dY, dX] : dir) { int nY = y + dY; int nX = x + dX; if((nY >= h)|| (nX >= w) || (nY < 0) || (nX < 0)) continue; if(visited[nY][nX] || grid[nY][nX] == '.') continue; visited[nY][nX] = 1; count.insert(grid[nY][nX]); q.push({nY, nX}); } } ans += count.size(); } } cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...