Cod sursa(job #747539)

Utilizator mada0222Tomus Madalina mada0222 Data 11 mai 2012 19:47:31
Problema BFS - Parcurgere in latime Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 0.94 kb
program fdsf;
var f,g:text;
n,m,s,i,j,x,y,st,sf,k:longint;
a:array of array of longint;
viz,d,v:array[1..100000] of longint;
begin
assign(f,'bfs.in'); reset(f);
assign(g,'bfs.out'); rewrite(g);
readln(f,n,m,s);
setlength(a,n+1,1);
  for i:=1 to m do
    begin
      readln(f,x,y);
      setlength(a[x],length(a[x])+1);
      a[x,0]:=a[x,0]+1;
      a[x,a[x,0]]:=y;
    end;
    st:=0; sf:=1;
  v[1]:=s;
  viz[s]:=1;
    while st<sf do
      begin
      st:=st+1;
         for k:=1 to a[v[st],0] do
            begin
              if viz[a[v[st],k]]=0 then
                begin
                viz[a[v[st],k]]:=1;
                sf:=sf+1;
                v[sf]:=a[v[st],k];
                d[a[v[st],k]]:=d[v[st]]+1;
                end;
            end;
      end;
    for i:=1 to n do
      begin
        if (d[i]=0) and (i<>s) then
        d[i]:=-1;
        write(g,d[i],' ');
      end;
close(f);
close(g);
end.