Advertisement
Oscar2019

aaa

Mar 10th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define W(x) cerr << "\033[31m" << #x << " = " << x << "\033[0m" << "\n";
  4.  
  5. #define ll long long
  6. #define pii pair<int, int >
  7. #define piii pair<int, pii >
  8. #define pll pair<ll, ll >
  9. #define vi vector<int >
  10. #define vii vector<pii >
  11. #define vl vector<ll >
  12. #define pb push_back
  13. #define mp make_pair
  14. #define ff first
  15. #define ss second
  16. #define pi acos(-1)
  17.  
  18. using namespace std;
  19.  
  20. #define prime 1000000007
  21.  
  22. const ll N = 300005;
  23.  
  24. int main(){
  25. int n, m;
  26. cin >> n >> m;
  27. vector<string> mat(n);
  28. for(int i = 0; i < n; i++){
  29. cin >> mat[i];
  30. }
  31. vector<pii> dir = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
  32. function<void(int, int)> dfs;
  33. dfs = [&](int x, int y){
  34. mat[x][y] = 'o';
  35.  
  36. for(auto&p : dir){
  37. if(x + p.ff >= 0 && x + p.ff < n &&
  38. y + p.ss >= 0 && y + p.ss < m &&
  39. mat[x + p.ff][y + p.ss] == '.'){
  40. dfs(x + p.ff, y + p.ss);
  41. }
  42. }
  43.  
  44. };
  45. printf("%d\n",[&](){
  46. int res = 0;
  47. for(int i = 0; i < n; i++){
  48. for(int j = 0; j < m; j++){
  49. if(mat[i][j] == '.'){
  50. res++;
  51. dfs(i, j);
  52.  
  53. }
  54. }
  55. }
  56. return res;
  57. }());
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement