Cod sursa(job #902272)

Utilizator mada0222Tomus Madalina mada0222 Data 1 martie 2013 13:27:48
Problema BFS - Parcurgere in latime Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 1.06 kb
program asfsdf;
var f,g:text;
n,i,m,s,x,y,st,sf:longint;
a:array of array of longint;
viz,v,d:array 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);
setlength(viz,n+1);
setlength(v,n+1);
setlength(d,n+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;
   viz[s]:=1;
   st:=0;
   sf:=1;
   v[1]:=s;
      while st<sf do
        begin
        st:=st+1;
            for i:=1 to a[v[st],0] do
               begin
                  if viz[a[v[st],i]]=0 then
                    begin
                    viz[a[v[st],i]]:=1;
                    sf:=sf+1;
                    v[sf]:=a[v[st],i];
                    d[v[sf]]:=d[v[st]]+1;
                    end;
               end;
        end;
        for i:=1 to n do
          begin
            if (i<>s) and (d[i]=0) then
               d[i]:=-1;
               write(g,d[i],' ');
          end;
close(f);
close(g);
end.