Pagini recente » Cod sursa (job #327368) | Cod sursa (job #2266961) | Cod sursa (job #1092897) | Cod sursa (job #2698768) | Cod sursa (job #590788)
Cod sursa(job #590788)
const f ='bfs.in'; g = 'bfs.out';
var
nvec,cost,q : array[0..10001] of longint;
a : array[0..10001,0..10001] of longint;
ii, jj, n, m : longint;
st, x, y : longint;
procedure bfs( nod : longint );
var
ss, l, i, j : longint;
begin
for i := 1 to n do cost[i] := -1;
//fillchar(cost, sizeof(cost),1);
ss := 0;
l := 1;
cost[nod] := 0;
q[ss] := nod;
//for i := 1 to l do
while ss<=l do begin
for j := 1 to nvec[q[ss]] do
if cost[a[q[ss],j]] = -1 then begin
inc( l );
q[l] := a[q[ss],j];
cost[q[l]] := cost[q[ss]] + 1;
end;
inc( ss );
end;
end;
begin
assign( input,f ); reset( input );
assign( output,g ); rewrite( output );
readln( n, m, st );
for ii := 1 to m do begin
readln( x,y );
nvec[x] := nvec[x] + 1;
//nvec[y] := nvec[y] + 1;
a[x,nvec[x]] := y;
//a[y,nvec[y]] := x;
end;
{
for ii := 1 to n do begin
for jj := 1 to nvec[ii] do write(a[ii,jj],' ');
writeln;
end;
writeln;
}
bfs(st);
for ii := 1 to n do write(cost[ii],' ');
end.