View Code of Problem 62

#include <stdio.h>
void fun(int a[200][200],int i,int j){
  a[i][j]=0;
  if(a[i][j+1]==1)
    fun(a,i,j+1);
  if(a[i][j-1]==1)
    fun(a,i,j-1);
  if(a[i+1][j]==1)
    fun(a,i+1,j);
  if(a[i-1][j]==1)
    fun(a,i-1,j);
  if(a[i+1][j+1]==1)
    fun(a,i+1,j+1);
  if(a[i+1][j-1]==1)
    fun(a,i+1,j-1);
  if(a[i-1][j+1]==1)
    fun(a,i-1,j+1);
  if(a[i-1][j-1]==1)
    fun(a,i-1,j-1);
  
}
int main(){
  int a[200][200];
  int n,k;
  int i,j;
  char c;
  while (scanf("%d%d",&n,&k)!=EOF){
    getchar();
    if(n==0&&k==0)
      break;
  for(i=0;i<n;i++){
    for(j=0;j<k;j++){
      scanf("%c",&c);
      a[i][j]=c-'0';
    }
    getchar();
  }
  int sum=0;
    for(i=0;i<n;i++){
      for(j=0;j<k;j++){
        if(a[i][j]==1){
          fun(a,i,j);
          sum++;
        }
      }
    }
    printf("%d\n",sum);
  
  
}
  
  
  return 0;
}

Double click to view unformatted code.


Back to problem 62