#include <iostream>
#include<queue>
using namespace std;
void bfstraversal(int graph[5][5])
{
queue <int> q;
bool visited[10];
int source=4;
for(int i=0;i<5;i++)
{
visited[i]=false;
}
q.push(source);
visited[source]=true;
while(!q.empty())
{
int v=q.front();
q.pop();
printf("%d ",v);
for(int i=0;i<5;i++)
{
if(!visited[i] && graph[v][i])
{
q.push(i);
visited[i]=true;
}
}
}
}
int main()
{
int graph[5][5]={{0,1,1,0,0},
{1,0,1,1,0},
{1,1,0,0,1},
{0,1,0,0,1},
{0,0,1,1,0}};
bfstraversal(graph);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxxdWV1ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgYmZzdHJhdmVyc2FsKGludCBncmFwaFs1XVs1XSkKewpxdWV1ZSA8aW50PiBxOwpib29sIHZpc2l0ZWRbMTBdOwppbnQgc291cmNlPTQ7CmZvcihpbnQgaT0wO2k8NTtpKyspCnsKdmlzaXRlZFtpXT1mYWxzZTsKfQpxLnB1c2goc291cmNlKTsKdmlzaXRlZFtzb3VyY2VdPXRydWU7CndoaWxlKCFxLmVtcHR5KCkpCnsKaW50IHY9cS5mcm9udCgpOwpxLnBvcCgpOwpwcmludGYoIiVkICIsdik7CmZvcihpbnQgaT0wO2k8NTtpKyspCnsKaWYoIXZpc2l0ZWRbaV0gJiYgZ3JhcGhbdl1baV0pCnsKcS5wdXNoKGkpOwp2aXNpdGVkW2ldPXRydWU7Cn0KfQp9Cn0KCmludCBtYWluKCkKewppbnQgZ3JhcGhbNV1bNV09e3swLDEsMSwwLDB9LAogICAgICAgICAgICAgICAgezEsMCwxLDEsMH0sCiAgICAgICAgICAgICAgICB7MSwxLDAsMCwxfSwKICAgICAgICAgICAgICAgIHswLDEsMCwwLDF9LAogICAgICAgICAgICAgICAgezAsMCwxLDEsMH19OwogICAgYmZzdHJhdmVyc2FsKGdyYXBoKTsKICAgIHJldHVybiAwOwp9Cgo=