Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main()
- {
- queue<int> Q;
- int n,m;
- int O=0;
- int V=0;
- cin>>n>>m;
- char mat [n][m];
- bool visited [n][m];
- for (int i=0; i<n; i++)
- {
- for (int j=0; j<m; j++)
- {
- cin>>mat [i][j];
- }
- }
- for (int i=0; i<n; i++)
- {
- for (int j=0; j<m; j++)
- {
- visited [i][j]=false
- ;
- }
- }
- for(int i =0; i < n; i++)
- {
- for(int j=0; j<m; j++)
- {
- if(visited[i][j] == false and mat[i][j]!='#')
- {
- Q.push(i);
- Q.push(j);
- visited[i][j] = true;
- int kolkuO=0, kolkuV=0;
- while(!Q.empty())
- {
- int ci = Q.front();
- Q.pop();
- int cj = Q.front();
- Q.pop();
- if(mat[ci][cj] == 'v')
- {
- kolkuV++;
- }
- if(mat[ci][cj] == 'o')
- {
- kolkuO++;
- }
- if(ci + 1 < n and mat[ci + 1][cj] != '#' and !visited[ci + 1][cj]){
- visited[ci + 1][cj] = true;
- Q.push(ci + 1);
- Q.push(cj);
- }
- if(ci - 1 >= 0 and mat[ci - 1][cj] != '#' and !visited[ci - 1][cj]){
- visited[ci - 1][cj] = true;
- Q.push(ci - 1);
- Q.push(cj);
- }
- if(cj + 1 < m and mat[ci][cj + 1] != '#' and !visited[ci][cj + 1]){
- visited[ci][cj + 1] = true;
- Q.push(ci);
- Q.push(cj + 1);
- }
- if(cj - 1 >= 0 and mat[ci][cj - 1] != '#' and !visited[ci][cj - 1]){
- visited[ci][cj - 1] = true;
- Q.push(ci);
- Q.push(cj - 1);
- }
- }
- if(kolkuO > kolkuV)
- O += kolkuO;
- else
- V += kolkuV;
- }
- }
- }
- cout<<O<<" "<<V;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement