Advertisement
Josif_tepe

Untitled

May 18th, 2022
446
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <queue>
  3. #include <cstring>
  4. using namespace std;
  5. typedef long long ll;
  6. int n, m;
  7. char mat[303][303];
  8. bool visited[303][303];
  9. int ovci, volci;
  10. void dfs(int i, int j) {
  11.     visited[i][j] = true;
  12.     if(mat[i][j] == 'o') {
  13.         ovci++;
  14.     }
  15.     if(mat[i][j] == 'v') {
  16.         volci++;
  17.     }
  18.     if(i + 1 < n and mat[i + 1][j] != '#' and !visited[i + 1][j]) {
  19.         dfs(i + 1, j);
  20.     }
  21.     if(i - 1 >= 0 and mat[i - 1][j] != '#' and !visited[i - 1][j]) {
  22.         dfs(i - 1, j);
  23.     }
  24.     if(j + 1 < m and mat[i][j + 1] != '#' and !visited[i][j + 1]) {
  25.         dfs(i, j + 1);
  26.     }
  27.     if(j - 1 >= 0 and mat[i][j - 1] != '#' and !visited[i][j - 1]) {
  28.         dfs(i, j - 1);
  29.     }
  30. }
  31. int main() {
  32.     ios_base::sync_with_stdio(false);
  33.     cin >> n >> m;
  34.     for(int i = 0; i < n; i++) {
  35.         for(int j = 0; j < m; j++) {
  36.             cin >> mat[i][j];
  37.             visited[i][j] = false;
  38.         }
  39.     }
  40.     int v = 0, o = 0;
  41.     for(int i = 0; i < n; i++) {
  42.         for(int j = 0; j < m; j++) {
  43.             if(!visited[i][j] and mat[i][j] != '#') {
  44.                 volci = 0;
  45.                 ovci = 0;
  46.                 dfs(i, j);
  47.                 if(ovci > volci) {
  48.                     o += ovci;
  49.                 }
  50.                 else {
  51.                     v += volci;
  52.                 }
  53.             }
  54.         }
  55.     }
  56.     cout << o << " " << v << endl;
  57.     return 0;
  58. }
  59.  
Advertisement
RAW Paste Data Copied
Advertisement