Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- using namespace std;
- char mapa[100][100];
- bool visited[100][100];
- int n, m;
- void dfs(int x, int y)
- {
- visited[x][y] = true;
- if(x - 1 >= 0 && mapa[x-1][y] == '+' && visited[x-1][y] == false)
- dfs(x-1, y);
- if(x + 1 < n && mapa[x+1][y] == '+' && visited[x+1][y] == false)
- dfs(x+1, y);
- if(y - 1 >= 0 && mapa[x][y-1] == '+' && visited[x][y-1] == false)
- dfs(x, y-1);
- if(y + 1 < m && mapa[x][y+1] == '+' && visited[x][y+1] == false)
- dfs(x, y+1);
- }
- int main()
- {
- scanf("%d%d", &n, &m);
- for(int i = 0 ; i < n ; ++i)
- for(int j = 0 ; j < m ; ++j)
- scanf(" %c", &mapa[i][j]);
- int bazeni = 0;
- for(int i = 0 ; i < n ; ++i)
- for(int j = 0 ; j < m ; ++j)
- if(mapa[i][j] == '+' && visited[i][j] == false)
- {
- dfs(i, j);
- ++bazeni;
- }
- printf("%d", bazeni);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement