Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define W(x) cerr << "\033[31m" << #x << " = " << x << "\033[0m" << "\n";
- #define ll long long
- #define pii pair<int, int >
- #define piii pair<int, pii >
- #define pll pair<ll, ll >
- #define vi vector<int >
- #define vii vector<pii >
- #define vl vector<ll >
- #define pb push_back
- #define mp make_pair
- #define ff first
- #define ss second
- #define pi acos(-1)
- using namespace std;
- #define prime 1000000007
- const ll N = 300005;
- int main(){
- int n, m;
- cin >> n >> m;
- vector<string> mat(n);
- for(int i = 0; i < n; i++){
- cin >> mat[i];
- }
- vector<pii> dir = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
- function<void(int, int)> dfs;
- dfs = [&](int x, int y){
- mat[x][y] = 'o';
- for(auto&p : dir){
- if(x + p.ff >= 0 && x + p.ff < n &&
- y + p.ss >= 0 && y + p.ss < m &&
- mat[x + p.ff][y + p.ss] == '.'){
- dfs(x + p.ff, y + p.ss);
- }
- }
- };
- printf("%d\n",[&](){
- int res = 0;
- for(int i = 0; i < n; i++){
- for(int j = 0; j < m; j++){
- if(mat[i][j] == '.'){
- res++;
- dfs(i, j);
- }
- }
- }
- return res;
- }());
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement