Pagini recente » Cod sursa (job #1763710) | Cod sursa (job #3147929) | Cod sursa (job #1265537) | Borderou de evaluare (job #1100448) | Cod sursa (job #709405)
Cod sursa(job #709405)
#include<stdio.h>
#include<vector>
int i , n , m , u ,C[100],Cost[100],Fr[100],s,x,y;
struct nod{
int nr;
nod *adr;
}* p;
nod* c,*L[100];
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;
memset(Cost,-1,sizeof(Cost));
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;
}