#include <iostream>
using namespace std;
int M = 5;
int N = 6;
int conn_blocks(int ch[][6], int i, int j)
{
ch[i][j] = 0;
if((i-1) >= 0 && ch[i-1][j])
conn_blocks(ch, i-1, j);
if((i+1) < M && ch[i+1][j])
conn_blocks(ch, i+1, j);
if((j-1) >= 0 && ch[i][j-1])
conn_blocks(ch, i, j-1);
if((j+1) < N && ch[i][j+1])
conn_blocks(ch, i, j+1);
}
int noOfConnectedBlocks(int ch[][6])
{
int n_conn_blocks=0;
for(int i=0; i<M; i++)
{
for(int j=0; j<N; j++)
{
if(ch[i][j])
{
n_conn_blocks++;
conn_blocks(ch, i, j);
}
}
}
return n_conn_blocks;
}
int main() {
// your code goes here
int ch[5][6] =
{1,0,0,1,1,1,
1,1,0,0,1,1,
0,0,0,1,1,1,
1,1,0,0,0,1,
0,0,1,1,1,1};
cout << noOfConnectedBlocks(ch);
for(int i=0; i<M; i++)
{
for(int j=0; j<N; j++)
{
cout << ch[i][j] << " ";
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IE0gPSA1OwppbnQgTiA9IDY7CgppbnQgY29ubl9ibG9ja3MoaW50IGNoW11bNl0sIGludCBpLCBpbnQgaikKewoJY2hbaV1bal0gPSAwOwoJaWYoKGktMSkgPj0gMCAmJiBjaFtpLTFdW2pdKQoJCWNvbm5fYmxvY2tzKGNoLCBpLTEsIGopOwoJaWYoKGkrMSkgPCBNICYmIGNoW2krMV1bal0pCgkJY29ubl9ibG9ja3MoY2gsIGkrMSwgaik7CglpZigoai0xKSA+PSAwICYmIGNoW2ldW2otMV0pCgkJY29ubl9ibG9ja3MoY2gsIGksIGotMSk7CglpZigoaisxKSA8IE4gJiYgY2hbaV1baisxXSkKCQljb25uX2Jsb2NrcyhjaCwgaSwgaisxKTsKfQoKaW50IG5vT2ZDb25uZWN0ZWRCbG9ja3MoaW50IGNoW11bNl0pCnsKCWludCBuX2Nvbm5fYmxvY2tzPTA7Cglmb3IoaW50IGk9MDsgaTxNOyBpKyspCgl7CgkJZm9yKGludCBqPTA7IGo8TjsgaisrKQoJCXsKCQkJaWYoY2hbaV1bal0pCgkJCXsKCQkJCW5fY29ubl9ibG9ja3MrKzsKCQkJCWNvbm5fYmxvY2tzKGNoLCBpLCBqKTsKCQkJfQoJCX0KCX0KCXJldHVybiBuX2Nvbm5fYmxvY2tzOwp9CgoKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IGNoWzVdWzZdID0gCgl7MSwwLDAsMSwxLDEsCjEsMSwwLDAsMSwxLAowLDAsMCwxLDEsMSwKMSwxLDAsMCwwLDEsCjAsMCwxLDEsMSwxfTsKCmNvdXQgPDwgbm9PZkNvbm5lY3RlZEJsb2NrcyhjaCk7CmZvcihpbnQgaT0wOyBpPE07IGkrKykKCXsKCQlmb3IoaW50IGo9MDsgajxOOyBqKyspCgkJewoJCQljb3V0IDw8IGNoW2ldW2pdIDw8ICIgICI7CgkJfQoJCWNvdXQgPDwgZW5kbDsKCX0KCXJldHVybiAwOwp9