Advertisement
mbah_bejo

Number Of Islands

May 11th, 2020
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int arr[10][10];
  5. void cek(int b,int k, int i, int j)
  6. {
  7.      if(b<0 || b>=i || k<0 || k>=j || arr[b][k]!=1) return;
  8.  
  9.         arr[b][k]=2;
  10.  
  11.         cek(b+1,k,i,j);
  12.         cek(b,k+1,i,j);
  13.         cek(b-1,k,i,j);
  14.         cek(b,k-1,i,j);
  15.  
  16. }
  17. void total(int i,int j)
  18. {
  19.     if(i ==0) return ;
  20.     int jumlah =0;
  21.     int b,k;
  22.     for(b=0;b<i;b++){
  23.         for(k=0;k<j;k++)
  24.         {
  25.             if(arr[b][k] == 1)
  26.             {
  27.                 cek(b,k,i,j);
  28.                 jumlah++;
  29.             }
  30.  
  31.         }
  32.     }
  33.     cout << jumlah << endl;
  34.  
  35. }
  36. int main()
  37. {
  38.    ios::sync_with_stdio(false);
  39.    cin.tie(NULL);
  40.     int k,l,i=0,j=0,kiri;
  41.     char num;
  42.  
  43.         memset(arr,0,sizeof(arr[0][0])*10*10);
  44.         while(1)
  45.         {
  46.                 num = getchar();
  47.                 if(num == '1')
  48.                 {arr[i][j++] = 1;
  49.  
  50.                 } else if (num == '0') j++;
  51.                 if(num == '\n'){
  52.                 i++; kiri = j;
  53.                 j=0;
  54.               //  cout << endl << i <<"--"<< kiri<< endl;
  55.                 }
  56.                if( num == EOF)
  57.                 {
  58.                         i++;
  59.                         break;
  60.                 }
  61.         }
  62.         j=kiri;
  63.         total(i,j);
  64.         /*
  65.        cout <<"\n\n" ;
  66.          for(k=0;k<i;k++)
  67.              {
  68.         for(l=0;l<j;l++)
  69.         {
  70.             cout << arr[k][l]<< ' ';
  71.         }
  72.         cout << "\n";
  73.     }
  74.   */
  75.         return 0;
  76.  
  77. }
  78. /*
  79. 1 1 0
  80. 1 0 1
  81. 0 0 1
  82. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement