Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.35 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     queue<int> Q;
  8.     int n,m;
  9.     int O=0;
  10.     int V=0;
  11.     cin>>n>>m;
  12.     char mat [n][m];
  13.     bool visited [n][m];
  14.     for (int i=0; i<n; i++)
  15.     {
  16.         for (int j=0; j<m; j++)
  17.         {
  18.             cin>>mat [i][j];
  19.  
  20.         }
  21.  
  22.     }
  23.     for (int i=0; i<n; i++)
  24.     {
  25.         for (int j=0; j<m; j++)
  26.         {
  27.             visited [i][j]=false
  28.  
  29.                           ;
  30.         }
  31.  
  32.     }
  33.     for(int i =0; i < n; i++)
  34.     {
  35.         for(int j=0; j<m; j++)
  36.         {
  37.             if(visited[i][j] == false and mat[i][j]!='#')
  38.             {
  39.  
  40.          Q.push(i);
  41.                 Q.push(j);
  42.                 visited[i][j] = true;
  43.                 int kolkuO=0, kolkuV=0;
  44.                 while(!Q.empty())
  45.                 {
  46.                     int ci = Q.front();
  47.                     Q.pop();
  48.                     int cj = Q.front();
  49.                     Q.pop();
  50.                     if(mat[ci][cj] == 'v')
  51.                     {
  52.                         kolkuV++;
  53.                     }
  54.                     if(mat[ci][cj] == 'o')
  55.                     {
  56.                         kolkuO++;
  57.                     }
  58.                     if(ci + 1 < n and mat[ci + 1][cj] != '#' and !visited[ci + 1][cj]){
  59.                         visited[ci + 1][cj] = true;
  60.                         Q.push(ci + 1);
  61.                         Q.push(cj);
  62.                     }
  63.                     if(ci - 1 >= 0 and mat[ci - 1][cj] != '#' and !visited[ci - 1][cj]){
  64.                         visited[ci - 1][cj] = true;
  65.                         Q.push(ci - 1);
  66.                         Q.push(cj);
  67.                     }
  68.                     if(cj + 1 < m and mat[ci][cj + 1] != '#' and !visited[ci][cj + 1]){
  69.                         visited[ci][cj + 1] = true;
  70.                         Q.push(ci);
  71.                         Q.push(cj + 1);
  72.                     }
  73.                     if(cj - 1 >= 0 and mat[ci][cj - 1] != '#' and !visited[ci][cj - 1]){
  74.                         visited[ci][cj - 1] = true;
  75.                         Q.push(ci);
  76.                         Q.push(cj - 1);
  77.                     }
  78.                 }
  79.                 if(kolkuO > kolkuV)
  80.                     O += kolkuO;
  81.                 else
  82.                     V += kolkuV;
  83.             }
  84.  
  85.  
  86.         }
  87.     }
  88.     cout<<O<<" "<<V;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement