Pagini recente » Cod sursa (job #1119443) | Cod sursa (job #2449880) | Cod sursa (job #1464686) | Cod sursa (job #1379029) | Cod sursa (job #2279827)
#include <bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> G[100001];
bool sel[100001];
int n,m,p,u,i,Q[100001],Lg[100001],T[100001],nod,S,x,y;
void bf(int x)
{
sel[x]=true;
p=u=1;
Q[p]=x;
while(p<=u)
{
nod=Q[p];
for(auto it:G[nod])
if(!sel[it]){
Q[++u]=it;
sel[it]=true;
Lg[it]=Lg[nod]+1;
T[it]=nod;
}
p++;
}
}
int main()
{
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(i!=S&&Lg[i]==0)Lg[i]=-1;
for(i=1;i<=n;i++)
g<<Lg[i]<<" ";
return 0;
}