Pagini recente » Cod sursa (job #1208830) | Cod sursa (job #2384673) | Cod sursa (job #2714139) | Cod sursa (job #1926098) | Cod sursa (job #1921551)
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
vector <int> V[100010];
int n,m,x,y,s,w,A[100010];
bool u[100010];
queue <int> Q;
int main(){
ifstream cin ("bfs.in");
ofstream cout ("bfs.out");
cin>>n>>m>>s;
for (int i=1; i<=m; i++){
cin>>x>>y;
if (x!=y && y!=s) V[x].pb(y);
}
u[s]=true; x=s;
Q.push(s);
while (!Q.empty()){
w=A[x];
x=Q.front();
Q.pop();
u[x]=true;
for (int i=0; i<V[x].size(); i++){
if (!u[V[x][i]]){
Q.push(V[x][i]);
A[V[x][i]]=w+1;
}
}
}
for (int i=1; i<=n; i++) cout<<(i==s?0:(A[i]==0?-1:A[i]))<<" ";
return 0;
}