Pagini recente » Cod sursa (job #486730) | Cod sursa (job #1382525) | Cod sursa (job #1158368) | Cod sursa (job #2492665) | Cod sursa (job #465021)
Cod sursa(job #465021)
type vec=record
a:array of -2..101000;
end;
var i,n,j,m,s,x,y,k:longint;
v:array[0..101000]of vec;
q,l:array[0..1100000]of -2..101000;
begin
assign(input,'bfs.in');
assign(output,'bfs.out');
reset(input);
rewrite(output);
readln(n,m,s);
for i:=1 to n do
begin
setlength(v[i].a,1);
v[i].a[0]:=-1;
end;
for i:=1 to m do
begin
readln(x,y);
inc(l[x]);
setlength(v[x].a,l[x]+1);
v[x].a[l[x]]:=y;
end;
v[s].a[0]:=0;
i:=0;
k:=1;
q[1]:=s;
while i<=n do
begin
inc(i);
for j:=1 to l[q[i]] do
begin
inc(k);
q[k]:=v[q[i]].a[j];
if (v[q[k]].a[0]>v[q[i]].a[0]+1) or (v[q[k]].a[0]=-1) then
v[q[k]].a[0]:=v[q[i]].a[0]+1;
end;
end;
for i:=1 to n do
write(v[i].a[0],' ');
close(output);
end.