Pagini recente » Cod sursa (job #2473453) | Cod sursa (job #2545955) | Cod sursa (job #2633264) | Cod sursa (job #2768217) | Cod sursa (job #3159375)
#include <bits/stdc++.h>
#define N 100005
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m,b,i,j,x,y,c,k,f[N],d[N],g[N];
vector<int> s[N];
queue<int> q;
int main()
{
fin>>n>>m>>b;
while(m--)
{
fin>>x>>y;
s[x].push_back(y);
}
for(i=1;i<=n;++i)
{
d[i]=-1;
g[i]=s[i].size();
}
q.push(b); f[b]=1; d[b]=0;
while(!q.empty())
{
x=q.front();
q.pop();
for(i=0;i<g[x];++i)
{
k=s[x][i];
if(f[k]) continue;
f[k]=1;
d[k]=d[x]+1;
q.push(k);
}
}
for(i=1;i<=n;++i)
{
fout<<d[i]<<' ';
}
return 0;
}