Pagini recente » Cod sursa (job #688784) | Cod sursa (job #2924821) | Cod sursa (job #2115382) | Cod sursa (job #2340878) | Cod sursa (job #2282205)
#include <bits/stdc++.h>
using namespace std;
vector<int> E[100005];
int D[100005];
void BFS(int k){
queue<int> Q;
Q.push(k);
D[k]=0;
while(!Q.empty()){
int X=Q.front();
for(auto it : E[X])
if(D[it]==-1){
D[it]=D[X]+1;
Q.push(it);
}
Q.pop();
}
}
int main(){
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
int n,m,s;
scanf("%d %d %d",&n,&m,&s);
for(int i=1;i<=n;++i)
D[i]=-1;
for(int i=1;i<=m;++i){
int st,dr;
scanf("%d %d",&st,&dr);
E[st].push_back(dr);
}
BFS(s);
for(int i=1;i<=n;++i)
printf("%d ",D[i]);
return 0;
}