Pagini recente » Cod sursa (job #1740511) | Cod sursa (job #1101208) | Cod sursa (job #2770353) | Cod sursa (job #1573793) | Cod sursa (job #1339446)
program mire;
var co,start:array[1..100000] of longint;
viz:array[1..100000] of longint;
n,m,s:longint;
f,g:text;
t:array[0..1,0..2000000] of longint;
procedure citire;
var i,a,b,k,j:longint;
begin
assign(f,'bfs.in'); reset(f);
readln(f,n,m,s);
k:=0;
for i:=1 to m do
begin
readln(f,a,b);
k:=k+1;
t[0,k]:=b;
t[1,k]:=start[a];
start[a]:=k;
//inc(k);
//t[0,k]:=a;
//t[1,k]:=start[b];
//start[b]:=k;
end;
close(f);
end;
procedure bf;
var st,sf,pp,i,ii,j:longint;
begin
// for i:=1 to n do
//begin
st:=1;
sf:=1;
co[st]:=s;
viz[s]:=1;
while st<=sf do
begin
pp:=start[co[st]];
while pp<>0 do
begin
if viz[t[0,pp]]=0 then
begin
sf:=sf+1;
co[sf]:=t[0,pp];
viz[co[sf]]:=viz[co[st]]+1;
//v[co[sf]]:=v[co[st]]+1;
end;
pp:=t[1,pp];
end;
st:=st+1;
end;
for j:=1 to n do
write(g,viz[j]-1,' ');
end;
begin
citire;
assign(g,'bfs.out'); rewrite(g);
bf;
close(g);
end.