Cod sursa(job #673935)

Utilizator mada0222Tomus Madalina mada0222 Data 5 februarie 2012 11:45:06
Problema BFS - Parcurgere in latime Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 1.13 kb
program sss;
var f,g:text;
    n,m,s,x,y,i,sf,st,k,j:longint;
    a:array[1..10000,0..10000] of longint;
    v,d,viz:array[1..1000000] of longint;
begin
assign(f,'bfs.in'); reset(f);
assign(g,'bfs.out'); rewrite(g);
  readln(f,n,m,s);

    for i:=1 to m do
      begin
        readln(f,x,y);
        a[x,0]:=a[x,0]+1;
        a[x,a[x,0]]:=y;
      end;
   {   for i:=1 to n do
      begin
        for j:=0 to 3 do
        begin
        write(g,a[i,j],' ');
        end;
      writeln(g);
      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.