Pagini recente » Cod sursa (job #3003451) | Cod sursa (job #884385) | Cod sursa (job #3152321) | Cod sursa (job #1436529) | Cod sursa (job #709406)
Cod sursa(job #709406)
#include<stdio.h>
#include<vector>
#define val 100010
int i , n , m , u ,C[val],Cost[val],Fr[val],s,x,y;
struct nod{
int nr;
nod *adr;
}* p;
nod* c,*L[val];
FILE*f=fopen("bfs.in","r");
FILE*g=fopen("bfs.out","w");
int main(){
fscanf(f,"%d %d %d",&n,&m,&s);
for(i=1;i<=m;i++){
fscanf(f,"%d%d",&x,&y);
p=new nod;
p->nr=y;
p->adr=L[x];
L[x]=p;
}
delete p;
for(i=1;i<=n;i++)
Cost[i]=-1;
Cost[s]=0;Fr[s]=1;
int p=1;u=1;C[1]=s;
while(p<=u){
c=L[C[p]];
while(c!=NULL){
if(Fr[c->nr]==0){
Fr[c->nr]=1;
C[++u]=c->nr;
Cost[C[u]]=Cost[C[p]]+1;
}
c=c->adr;
}
p++;
}
delete c;
for(i=1;i<=n;i++)
fprintf(g,"%d ",Cost[i]);
return 0;
}