Pagini recente » Cod sursa (job #121944) | Cod sursa (job #122421) | Cod sursa (job #751919) | Cod sursa (job #2174178) | Cod sursa (job #2195418)
#include <iostream>
#include<cstdio>
#include<vector>
using namespace std;
vector <int> v[100005];
int q[100005];
int dist[100005];
int main()
{
int x1,x2,s,n,m,i,st=1,dr=0;
FILE*fin,*fout;
fin=fopen("bfs.in","r");
fout=fopen("bfs.out","w");
fscanf(fin,"%d%d%d",&n,&m,&s);
for(i=1;i<=m;i++){
fscanf(fin,"%d%d",&x1,&x2);
v[x1].push_back(x2);
}
q[++dr]=s;
dist[s]=1;
int x;
while(st<=dr){
x=q[st++];
for(i=0;i<v[x].size();i++){
if(dist[v[x][i]]==0){
q[++dr]=v[x][i];
dist[v[x][i]]=1+dist[x];
}
}
}
for(i=1;i<=n;i++)
fprintf(fout,"%d ",dist[i]-1);
return 0;
}