Cod sursa(job #1170435)

Utilizator Mihai_ChihaiMihai Chihai Mihai_Chihai Data 13 aprilie 2014 16:58:01
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.87 kb
program sortaret;
 type lista=^celula;
        celula=record
                info:longint;
                pred:lista;
                end;
 var a:array[1..100000] of lista;
        r:lista;
        n,m,i,x,y,k:longint;
        t,viz:array[1..100000] of longint;

 procedure dfs(nod:longint);
  var r:lista;
 begin
   r:=a[nod];
   viz[nod]:=1;
   while r<>nil do begin
     if viz[r^.info]=0 then dfs(r^.info);
     r:=r^.pred;
     end;
   inc(k);
   t[k]:=nod;
 end;



 begin
   assign(input,'sortaret.in');
   assign(output,'sortaret.out');
   reset(input);
   rewrite(output);
   readln(n,m);
   for i:=1 to m do
     begin
       readln(x,y);
       new(r);
       r^.info:=y;
       r^.pred:=a[x];
       a[x]:=r;
     end;
   for i:=1 to n do
     if viz[i]=0 then dfs(i);
   for i:=n downto 1 do write(t[i],' ');
   close(output);
 end.