Pagini recente » Cod sursa (job #2931599) | Cod sursa (job #2363113) | Cod sursa (job #1527819) | Cod sursa (job #2765958) | Cod sursa (job #2212535)
#include <bits/stdc++.h>
using namespace std;
ifstream f( "bfs.in" );
ofstream g( "bfs.out" );
vector < int > G[100004];
queue < int > Q;
int n,m,s,x,y,sel[100003],Lg[100003];
void bf( int x )
{
int i,p,u;
int nod=0;
sel[x]=true;
Q.push(x);
p=u=1;
Lg[x]=0;
while(!Q.empty())
{
nod=Q.front();
for(i=0; i<G[nod].size() ; i++)
{
y=G[nod][i];
if(!sel[y])
{
Q.push(y);
sel[y]=true;
Lg[y]=Lg[nod]+1;
}
}
Q.pop();
}
}
int main()
{
int i;
f>>n>>m>>s;
for(i=1;i<=m;i++)
{
f>>x>>y;
G[x].push_back(y);
}
bf(s);
for(i=1;i<=n;i++)
{
if(Lg[i]==0 && i!=s)
g<<-1<<" ";
else
g<<Lg[i]<<" ";
}
return 0;
}