Advertisement
welleyth

2168. Square punch

Dec 28th, 2020
1,054
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. const int N = 101, M = 101;
  5.  
  6. bool gr[N][M];
  7.  
  8. int n,m;
  9.  
  10. bool used[N][M];
  11.  
  12. int DX[] = {0,0,1,-1};
  13. int DY[] = {-1,1,0,0};
  14.  
  15. void dfs(int x,int y)
  16. {
  17.     int xn, yn;
  18.     used[x][y] = true;
  19.     for(int i = 0 ; i < 4 ; ++i)
  20.     {
  21.         xn = x + DX[i], yn = y + DY[i];
  22.         if(xn >= 0 && xn < n && yn >= 0 && yn < m && !gr[xn][yn] && !used[xn][yn])
  23.             dfs(xn,yn);
  24.     }
  25.  
  26.     return;
  27. }
  28.  
  29. signed main()
  30. {
  31.     scanf("%d %d",&n,&m);
  32.  
  33.     for(int i = 0 ; i < n ; ++i)
  34.     {
  35.         for(int j = 0 ; j < m ; ++j)
  36.         {
  37.             scanf("%d",&gr[i][j]);
  38.         }
  39.     }
  40.  
  41.     int c = 0;
  42.  
  43.     for(int i = 0 ; i < n ; ++i)
  44.     {
  45.         for(int j = 0 ; j < m ; ++j)
  46.         {
  47.             if(!used[i][j] && !gr[i][j])
  48.             {
  49.                 dfs(i,j);
  50.                 c++;
  51.             }
  52.         }
  53.     }
  54.  
  55.     printf("%d",c);
  56.  
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement