Pagini recente » Cod sursa (job #1713495) | Cod sursa (job #2390591) | Cod sursa (job #2596954) | Cod sursa (job #560638) | Cod sursa (job #279700)
Cod sursa(job #279700)
#include<stdio.h>
int a[100][100],b[100];
struct elem
{
elem *leg;
int inf;
int inf2;
};
int main()
{
FILE *f=fopen("bfs.in","r");
int n,m,s,i,x,y;
elem *p,*prim,*ultim;
fscanf(f,"%d %d %d",&n,&m,&s);
for (i=1;i<=m;i++)
{
fscanf(f,"%d %d",&x,&y);
a[x][y]=1;
}
fclose(f);
prim=new elem;
prim->leg=NULL;
prim->inf=1;
ultim=prim;
b[s]=1;
prim->inf2=s;
while (prim)
{
for (i=1;i<=n;i++)
{
if (a[s][i]!=0&&b[i]==0)
{
b[i]=prim->inf+1;
p=new elem;
ultim->leg=p;
p->leg=NULL;
p->inf=prim->inf+1;p->inf2=i;
ultim=p;
p->leg=NULL;
}
}
prim=prim->leg;
s=prim->inf2;
}
FILE *g=fopen("bfs.out","w");
for (i=1;i<=n;i++)
if (b[i]!=0)
fprintf(g,"%d ",b[i]-1);
else fprintf(g,"%d ",-1);
fclose(g);
return 0;
}