Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream in ("fill.in");
- ofstream of ("fill.out");
- int v[105][105],nr=1,n,m;
- void filll(int i,int j)
- {
- v[i][j]=nr;
- if(v[i-1][j]==0)
- filll(i-1, j);
- if(v[i][j+1]==0)
- filll(i, j+1);
- if(v[i][j-1]==0)
- filll(i, j-1);
- if(v[i+1][j]==0)
- filll(i+1,j);
- }
- void bordare()
- {
- int j=0,i=0;
- for (i=0; i<=n+1; i++) v[i][0]=1;
- for (j=0; j<=m+1; j++) v[0][j]=1;
- for (i=0; i<=n+1; i++) v[i][m+1]=1;
- for (j=0; j<=m+1; j++) v[n+1][j]=1;
- }
- int main()
- {
- int j=0,i=0,x;
- in>>n>>m;
- bordare();
- for (i=1; i<=n; i++) for (j=1; j<=m; j++){in>>x;v[i][j]=(!x);}
- for (i=1; i<=n; i++) for (j=1; j<=m; j++)
- {
- if(v[i][j]==0)
- {
- nr++;
- filll(i,j);
- }
- }
- of<<nr-1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement