Pagini recente » Cod sursa (job #1826766) | Cod sursa (job #482370) | Cod sursa (job #810085) | Cod sursa (job #1156728) | Cod sursa (job #562484)
Cod sursa(job #562484)
#include<stdio.h>
#include<vector>
using namespace std;
FILE*f=fopen("bfs.in","r");
FILE*g=fopen("bfs.out","w");
int j,n,m,s,i,x,y,p,u,ok,c[1000001],v[1000001],k;
vector <int> L[100001];
void rez(){
p=1;
u=1;
while(p<=u){
for(i=0;i<L[c[p]].size();++i){
if(v[L[c[p]][i]]==0&&L[c[p]][i]!=s){
c[++u]=L[c[p]][i];
v[c[u]]=v[c[p]]+1;
}
}
++p;
}
}
int main(){
fscanf(f,"%d%d%d",&n,&m,&s);
for(i=1;i<=m;++i){
fscanf(f,"%d%d",&x,&y);
L[x].push_back (y);
}
c[1]=s;
rez();
for(i=1;i<=n;++i){
if(v[i]!=0||i==s)
fprintf(g,"%d ",v[i]);
else
fprintf(g,"-1 ");
}
fclose(g);
fclose(f);
return 0;
}