aboutsummaryrefslogtreecommitdiff
path: root/works/solutions/acwing/1233.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'works/solutions/acwing/1233.cpp')
-rw-r--r--works/solutions/acwing/1233.cpp69
1 files changed, 0 insertions, 69 deletions
diff --git a/works/solutions/acwing/1233.cpp b/works/solutions/acwing/1233.cpp
deleted file mode 100644
index 117b2fb..0000000
--- a/works/solutions/acwing/1233.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#include <iostream>
-#include <utility>
-
-const int M = 1010;
-
-int N;
-char map[M][M];
-bool visited[M][M];
-
-int not_sink_count;
-
-const std::pair<int, int> moves[]{{1, 0}, {0, 1}, {-1, 0}, {0, -1}};
-
-void dfs(int r, int c) {
- if (visited[r][c])
- return;
- if (map[r][c] != '#')
- return;
-
- visited[r][c] = true;
-
- bool sink = false;
-
- for (const auto &move : moves) {
- if (map[r + move.first][c + move.second] == '.') {
- sink = true;
- break;
- }
- }
-
- if (!sink) {
- not_sink_count++;
- }
-
- for (const auto &move : moves) {
- dfs(r + move.first, c + move.second);
- }
-}
-
-int main() {
- std::ios_base::sync_with_stdio(false);
- std::cin.tie(nullptr);
-
- std::cin >> N;
-
- for (int i = 1; i <= N; i++) {
- for (int j = 1; j <= N; j++) {
- std::cin >> map[i][j];
- }
- }
-
- int result = 0;
-
- for (int i = 1; i <= N; i++) {
- for (int j = 1; j <= N; j++) {
- if (map[i][j] == '#' && !visited[i][j]) {
- dfs(i, j);
- if (not_sink_count == 0) {
- result++;
- }
- not_sink_count = 0;
- }
- }
- }
-
- std::cout << result;
-
- return 0;
-}