Submission #1202328

#TimeUsernameProblemLanguageResultExecution timeMemory
1202328zarcxTracks in the Snow (BOI13_tracks)C++20
2.19 / 100
745 ms93480 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; set<int> count; 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; 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 << count.size() << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...