Derga

Untitled

May 31st, 2024
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. #include <algorithm>
  2. #include <cstdint>
  3. #include <iostream>
  4. #include <string>
  5. #include <queue>
  6. #include <vector>
  7.  
  8. using namespace std;
  9.  
  10. void Dfs(vector<string>& floor, vector<vector<bool>>& is_visited, int i, int j) {
  11. is_visited[i][j] = true;
  12. for (int di = -1; di <= 1; ++di) {
  13. for (int dj = -1; dj <= 1; ++dj) {
  14. int ni = i + di;
  15. int nj = j + dj;
  16. if (ni < 0 || floor.size() <= ni || nj < 0 || floor.front().size() <= nj) continue;
  17. if (is_visited[ni][nj]) continue;
  18. if (floor[i][j] == floor[ni][nj]) continue;
  19.  
  20. Dfs(floor, is_visited, ni, nj);
  21. }
  22. }
  23. }
  24.  
  25. int main() {
  26. const int FLOOR_SIDE_SIZE = 8;
  27. vector<string> floor(FLOOR_SIDE_SIZE);
  28. for (string& row : floor) cin >> row;
  29.  
  30. vector<vector<bool>> is_visited(FLOOR_SIDE_SIZE, vector<bool>(FLOOR_SIDE_SIZE, false));
  31. int cnt = 0;
  32. for (int i = 0; i < FLOOR_SIDE_SIZE; ++i) {
  33. for (int j = 0; j < FLOOR_SIDE_SIZE; ++j) {
  34. if (is_visited[i][j]) continue;
  35. Dfs(floor, is_visited, i, j);
  36. ++cnt;
  37. }
  38. }
  39.  
  40. cout << cnt;
  41.  
  42. return 0;
  43. }
  44.  
  45. /*
  46. test1
  47. WBWBWBBW
  48. BWBBWBWB
  49. WBWWBWBW
  50. WBWWBWWB
  51. BWBBWBWB
  52. WBWBWWBW
  53. BWBWBBWB
  54. WBWBWWBW
  55.  
  56. 4
  57. */
Advertisement
Add Comment
Please, Sign In to add comment