Advertisement
Saleh127

CSES 1192

Oct 28th, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int t; cin>>t; for(int cs=1;cs<=t;cs++)
  5.  
  6. ll n,m;
  7. bool seen[1005][1005];
  8. vector<pair<int,int>> moves = {{-1,0},{1,0},{0,-1},{0,1}};
  9.  
  10. bool right(ll i,ll j)
  11. {
  12. if(i<0 || i>=n || j<0 || j>=m)
  13. {
  14. return false;
  15. }
  16. if(seen[i][j]==1)
  17. {
  18. return false;
  19. }
  20. return true;
  21. }
  22.  
  23. void dfs(ll i,ll j)
  24. {
  25. seen[i][j]=1;
  26. for(auto p: moves)
  27. {
  28. if(right(i+p.first,j+p.second))
  29. {
  30. dfs(i+p.first, j+p.second);
  31. }
  32. }
  33. }
  34.  
  35. int main()
  36. {
  37. ios_base::sync_with_stdio(0);
  38. cin.tie(0);cout.tie(0);
  39.  
  40. ll i,j,c=0;
  41. cin>>n>>m;
  42. char x;
  43.  
  44. memset(seen,0,sizeof(seen));
  45.  
  46. for(i=0;i<n;i++)
  47. {
  48. for(j=0;j<m;j++)
  49. {
  50. cin>>x;
  51. if(x=='#')
  52. {
  53. seen[i][j]=1;
  54. }
  55. }
  56. }
  57.  
  58. for(i=0;i<n;i++)
  59. {
  60. for(j=0;j<m;j++)
  61. {
  62. if(seen[i][j]==0)
  63. {
  64. dfs(i,j);
  65. c++;
  66. }
  67. }
  68. }
  69. cout<<c<<endl;
  70. return 0;
  71. }
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement