Pagini recente » Cod sursa (job #2828339) | Cod sursa (job #28261) | Statistici Mircea Serban Andrei (Mircea-gka) | Cod sursa (job #1743714) | Cod sursa (job #2278819)
#include <stdio.h>
#include<vector>
#include<queue>
#include<string.h>
using namespace std;
vector<int> a[100001];
queue<int> q;
int dist[100001],n,m,s;
void cit(){
freopen("bfs.in","r",stdin);
int i,j,h;
scanf("%i%i%i",&n,&m,&s);
for(h=1;h<=m;h++){
scanf("%i%i",&i,&j);
a[i].push_back(j);
}
memset(dist,-1,sizeof(dist));
}
void bfs(){
int k,i;
dist[s]=0;q.push(s);
while(!q.empty()){
k=q.front();
q.pop();
for(i=0;i<a[k].size();i++)
if(dist[a[k][i]]==-1){
dist[a[k][i]]=dist[k]+1;
q.push(a[k][i]);
}
}
}
void afis(){
freopen("bfs.out","w",stdout);
int i;
for(i=1;i<=n;i++)
printf("%i ",dist[i]);
}
int main(){
cit();
bfs();
afis();
return 0;
}