Cod sursa(job #730549)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 6 aprilie 2012 14:37:20
Problema Sortare topologica Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.97 kb
Program p1_sortare_dfs;
type lista=^Celula;
     Celula = record
              info:longint;
              next:lista;
              end;
var fi,fo : text;  q:lista;  x,y : longint;
    a : array[0..500000] of lista;
    b : array[0..500002] of byte;
    i,n,n2 : longint;

Procedure dfs(k:longint);
var r:lista;
begin
    r:=a[k]; b[k]:=1; write(fo,k,' ');
    while r<>nil do begin
                    if b[r^.info]=0 then dfs(r^.info);
                    r:=r^.next;
                    end;
end;

begin
    assign(fi,'sortaret.in'); reset(fi); readln(fi,n,n2);
    assign(fo,'sortaret.out'); rewrite(fo);
    for i:=1 to n do begin a[i]:=nil;  b[i]:=0; end;

    for i:=1 to n2 do begin
                     new(q);
                     readln(fi,x,y);
                     q^.info:=y;
                     q^.next:=a[x];
                     a[x]:=q;
                     end;

    for i:=1 to n do if b[i]=0 then dfs(i);
    close(fi); close(fo);
end.