Pagini recente » Cod sursa (job #289336) | Cod sursa (job #1402461) | Cod sursa (job #334350) | Cod sursa (job #513226) | Cod sursa (job #1093405)
program p1;
type lista=^celula;
celula= record
info:longint;
urm:lista;
end;
var a:array[0..100000] of lista;
F,G:tEXT;
i,n,j,k,u,i_c,sf_C,s,m,x,y:longint;
viz:array[0..500] of byte;
c,d:array[0..25000] of integer;
q:lista;
procedure bfs(k:integer);
var i_c,sf_c:longint;
begin
c[1]:=k;
i_c:=1;
sf_c:=1;
while i_c<=sf_C do begin
q:=a[c[i_C]];
while q<> nil do begin
if d[q^.info]=-1 then begin
inc(S);
c[s]:=q^.info;
d[c[s]]:=d[c[i_C]]+1;
end;
q:=q^.urm;
end;
inc(i_C);
end;
end;
begin
assign(f,'bfs.in');reset(F);
assign(g,'bfs.out');rewrite(G);
readln(f,n,m,k);
for i:=1 to n do begin
d[i]:=-1;
end;
for i:=1 to m do begin
readln(f,x,y);
new(q);
q^.info:=y;
q^.urm:=a[x];
a[x]:=q;
end;
d[k]:=0;
bfs(K);
for i:=1 to n do write(G,d[i],' ');
close(F);
close(G);
end.