1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#include <iostream>
#include <fstream>
using namespace std;
int check(int arr[N][N],int a, int b){
while (arr[a][b]==0){
arr[a][b]=1;
check(arr,a,b+1);
check(arr,a+1,b);
check(arr,a,b-1);
check(arr,a-1,b);
}
}
int main(){
ifstream in ("in.txt");
ofstream out ("out.txt");
int N,i,j,islands=0,a;
in>>N;
int arr[N][N];
for (i=0;i<N;i++){
for (j=0;j<N;j++){
in>>a;
arr[i][j]=a;
}
}
for (i=0;i<N;i++){
for (j=0;j<N;j++){
if (arr[i][j]==0){
islands+=1;
check(arr,i,j);
}
}
}
out<<islands<<endl;
in.close();
out.close();
return 0;
}
|