Pagini recente » Cod sursa (job #751555) | Cod sursa (job #576942) | Cod sursa (job #2789711) | Cod sursa (job #1188638) | Cod sursa (job #282014)
Cod sursa(job #282014)
program bfs;
type point=^nod;
nod=record
urm:point;
val:longint;
end;
var a:array[1..100000] of point;
f,g:text;
v:array[1..100000] of longint;
fol:array[1..100000] of longint;
x,y,n,m,i,nr_tot:longint;
p:point;
begin
assign(f,'bfs.in'); reset(f);
assign(g,'bfs.out'); rewrite(g);
read(f,n,m,v[1]);
for i:=1 to m do begin
read(f,x,y);
new(p);
p^.urm:=a[x]; p^.val:=y; a[x]:=p;
end;
for i:=1 to n do
fol[i]:=-1;
i:=1; nr_tot:=1;
fol[v[1]]:=0;
while i<=nr_tot do begin
p:=a[v[i]];
while p<>NIL do begin
if fol[p^.val]=-1 then begin
inc(nr_tot);
v[nr_tot]:=p^.val;
fol[p^.val]:=fol[v[i]]+1;
end;
p:=p^.urm;
end;
i:=i+1;
end;
for i:=1 to n do
write(g,fol[i],' ');
close(f); close(g);
end.