fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int M = 5;
  5. int N = 6;
  6.  
  7. int conn_blocks(int ch[][6], int i, int j)
  8. {
  9. ch[i][j] = 0;
  10. if((i-1) >= 0 && ch[i-1][j])
  11. conn_blocks(ch, i-1, j);
  12. if((i+1) < M && ch[i+1][j])
  13. conn_blocks(ch, i+1, j);
  14. if((j-1) >= 0 && ch[i][j-1])
  15. conn_blocks(ch, i, j-1);
  16. if((j+1) < N && ch[i][j+1])
  17. conn_blocks(ch, i, j+1);
  18. }
  19.  
  20. int noOfConnectedBlocks(int ch[][6])
  21. {
  22. int n_conn_blocks=0;
  23. for(int i=0; i<M; i++)
  24. {
  25. for(int j=0; j<N; j++)
  26. {
  27. if(ch[i][j])
  28. {
  29. n_conn_blocks++;
  30. conn_blocks(ch, i, j);
  31. }
  32. }
  33. }
  34. return n_conn_blocks;
  35. }
  36.  
  37.  
  38.  
  39. int main() {
  40. // your code goes here
  41. int ch[5][6] =
  42. {1,0,0,1,1,1,
  43. 1,1,0,0,1,1,
  44. 0,0,0,1,1,1,
  45. 1,1,0,0,0,1,
  46. 0,0,1,1,1,1};
  47.  
  48. cout << noOfConnectedBlocks(ch);
  49. for(int i=0; i<M; i++)
  50. {
  51. for(int j=0; j<N; j++)
  52. {
  53. cout << ch[i][j] << " ";
  54. }
  55. cout << endl;
  56. }
  57. return 0;
  58. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
30  0  0  0  0  0  
0  0  0  0  0  0  
0  0  0  0  0  0  
0  0  0  0  0  0  
0  0  0  0  0  0