Cod sursa(job #287088)

Utilizator 7RaduRadu Antohi 7Radu Data 24 martie 2009 15:54:24
Problema Sortare topologica Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.82 kb
program Sortaretop;
label
   001,002;
var
   n,m,i,j,k,l,a1,a2:longint;
   g:array[0..5000,0..5000] of longint;
   nr,s:array[0..50000] of longint;
   fl:text;
begin
   assign(fl,'sortaret.in');
   reset(fl);
   readln(fl,n,m);
   for i := 1 to m do
     begin
        readln(fl,a1,a2);
        inc(g[a2,0]);
        g[a2,g[a2,0]] := a1;
        inc(nr[a1]);
     end;
   close(fl);

001: ;
   a1 := 0;
   for i := 1 to n do
      if nr[i] = 0 then
         begin
            nr[i] := -1;
            a1 := i;
            break;
         end;
   if a1 = 0 then
      goto 002;
   k := k+1;
   s[k] := a1;
   for i := 1 to g[a1,0] do
      dec(nr[g[a1,i]]);
   goto 001;
002: ;

   assign(fl,'sortaret.out');
   rewrite(fl);
   for i := k downto 1 do
      write(fl,s[i],' ');
  close(fl);


end.