Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. ifstream in ("fill.in");
  5. ofstream of ("fill.out");
  6. int v[105][105],nr=1,n,m;
  7. void filll(int i,int j)
  8. {
  9. v[i][j]=nr;
  10. if(v[i-1][j]==0)
  11. filll(i-1, j);
  12. if(v[i][j+1]==0)
  13. filll(i, j+1);
  14. if(v[i][j-1]==0)
  15. filll(i, j-1);
  16. if(v[i+1][j]==0)
  17. filll(i+1,j);
  18. }
  19. void bordare()
  20. {
  21. int j=0,i=0;
  22. for (i=0; i<=n+1; i++) v[i][0]=1;
  23. for (j=0; j<=m+1; j++) v[0][j]=1;
  24. for (i=0; i<=n+1; i++) v[i][m+1]=1;
  25. for (j=0; j<=m+1; j++) v[n+1][j]=1;
  26. }
  27. int main()
  28. {
  29. int j=0,i=0,x;
  30. in>>n>>m;
  31. bordare();
  32. for (i=1; i<=n; i++) for (j=1; j<=m; j++){in>>x;v[i][j]=(!x);}
  33. for (i=1; i<=n; i++) for (j=1; j<=m; j++)
  34. {
  35.  
  36. if(v[i][j]==0)
  37. {
  38. nr++;
  39. filll(i,j);
  40. }
  41. }
  42. of<<nr-1;
  43. return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement