Pagini recente » Cod sursa (job #1526633) | Cod sursa (job #1914098) | Cod sursa (job #3149174) | Cod sursa (job #2180294) | Cod sursa (job #2279828)
#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,cr,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(auto it : G[nod])
{
if(!sel[it])
{
Q.push(it);
sel[it]=true;
Lg[it]=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);
// G[y].push_back(x);
}
bf(s);
for(i=1;i<=n;i++)
{
if(Lg[i]==0 && i!=s)
g<<-1<<" ";
else
g<<Lg[i]<<" ";
}
return 0;
}