Pagini recente » Cod sursa (job #406906) | Cod sursa (job #109738) | Cod sursa (job #1296790) | Cod sursa (job #2078339) | Cod sursa (job #2079114)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
queue <int> q;
vector <int> A[100005];
int val[100005];
int BFS(int x){
int i;
q.push(x);
int aux=x;
while(!q.empty()){
x=q.front();
q.pop();
for(i=0;i<A[x].size();i++){
if(A[x][i]!=aux && val[A[x][i]]==0){
val[A[x][i]]=val[x]+1;
q.push(A[x][i]);
}
}
}
}
int main(){
int i,n,m,k,x,y;
fin>>n>>m>>k;
for(i=1;i<=m;i++){
fin>>x>>y;
if(x!=y)
A[x].push_back(y);
}
BFS(k);
for(i=1;i<=n;i++){
if(val[i]==0 && i!=k)
fout<<-1<<" ";
else
fout<<val[i]<<" ";
}
return 0;
}