Pagini recente » Cod sursa (job #135092) | Cod sursa (job #1304764) | Cod sursa (job #1032040) | Istoria paginii utilizator/candybucher | Cod sursa (job #1006051)
#include <stdio.h>
using namespace std;
struct nod {int val;nod *urm;};
int i,m,n,k,c[100005],x,y,use[100005],prim,ultim;
FILE *f,*g;
nod *v[100001];
void add (nod *&p,int e)
{
nod *t;
t=new nod;
t->val=e;
t->urm=p;
p=t;
}
int main()
{ f=fopen ("bfs.in","r");
g=fopen ("bfs.out","w");
fscanf (f,"%d%d%d",&n,&m,&k);
for (i=1;i<=m;i++) { fscanf (f,"%d%d",&x,&y);
add (v[x],y);
}
prim=1;ultim=1;
c[prim]=k;
nod *t;
use [k]=1;
while (prim<=ultim)
{ for (t=v[c[prim]];t!=NULL;t=t->urm) { if (use[t->val]==0) { use[t->val]=use[c[prim]]+1;
c[++ultim]=t->val;
}
}
prim++;
}
for (i=1;i<=n;i++) if (use[i]==0) fprintf (g,"%d ",-1);
else fprintf (g,"%d ",use[i]-1);
return 0;
}