fork download
  1. // HoaiNam
  2. #include <bits/stdc++.h>
  3. #define endl "\n"
  4. #define int long long
  5. #define all(x) x.begin(), x.end()
  6. #define NAME ""
  7. using namespace std;
  8.  
  9. const int N = 1e3 + 1;
  10. const int INF = 1e9;
  11. const int mod = 1e9 + 7;
  12.  
  13. int dx[] = { -1, 0, 1, 0};
  14. int dy[] = {0, 1, 0, -1};
  15.  
  16. char A[N][N];
  17. bool vis[N][N];
  18. int n, m;
  19.  
  20. void dfs(pair<int, int> start) {
  21. auto [u, v] = start;
  22. vis[u][v] = true;
  23. for (int i = 0; i < 4; ++i) {
  24. int x = u + dx[i];
  25. int y = v + dy[i];
  26. if (x >= 1 && x <= n && y >= 1 && y <= m && !vis[x][y] && A[x][y] == '#') {
  27. dfs({x, y});
  28. }
  29. }
  30. }
  31.  
  32. signed main() {
  33. ios::sync_with_stdio(false);
  34. cin.tie(nullptr);
  35.  
  36. if (fopen(NAME".INP", "r")) {
  37. freopen(NAME".INP", "r", stdin);
  38. freopen(NAME".OUT", "w", stdout);
  39. }
  40.  
  41. cin >> n >> m;
  42.  
  43. for (int i = 1; i <= n; ++i) {
  44. for (int j = 1; j <= m; ++j) {
  45. cin >> A[i][j];
  46. }
  47. }
  48.  
  49. int cnt = 0;
  50. for (int i = 1; i <= n; ++i) {
  51. for (int j = 1; j <= m; ++j) {
  52. if (!vis[i][j] && A[i][j] == '#') {
  53. dfs({i, j});
  54. cnt++;
  55. }
  56. }
  57. }
  58. cout << cnt << endl;
  59.  
  60. // HoaiNam
  61. }
  62.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
0