Pagini recente » Cod sursa (job #2479309) | Cod sursa (job #1783007) | Cod sursa (job #1809177) | Cod sursa (job #2712532) | Cod sursa (job #2298634)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector <int> l[201];
queue <int> coada;
int n,viz[201],s,i,x,y,m,nod,j,nrviz[201];
void citire()
{
int i,x,y,m;
fin>>n>>m>>s;
for(i=1;i<=m;i++)
{
fin>>x>>y;
l[x].push_back(y);
l[y].push_back(x);
}
}
void bfs(int nod_start)
{
int i;
for(i=1;i<=n;i++)
{
viz[i]=0;
}
coada.push(nod_start);
viz[nod_start]=1;
while(!coada.empty())
{
nod=coada.front();
for(i=0;i<l[nod].size();i++)
{
j=l[nod][i];
if(viz[j]==0)
{
coada.push(j);
viz[j]=1;
nrviz[j]=nrviz[nod]+1;
}
}
coada.pop();
}
}
int main()
{
fin>>n>>m>>s;
for(i=1;i<=m;i++)
{
fin>>x>>y;
l[x].push_back(y);
///l[y].push_back(x);
}
bfs(s);
for(i=1;i<=n;i++)
{
if(i!=s && nrviz[i]==0)
{
fout<<-1<<" ";
}
else
{
fout<<nrviz[i]<<" ";
}
}
return 0;
}