Cod sursa(job #287092)

Utilizator 7RaduRadu Antohi 7Radu Data 24 martie 2009 15:57:08
Problema Sortare topologica Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.84 kb
program Sortaretop;
label
   001,002;
var
   n,m,i,j,k,l,a1,a2:longint;
   g:array[0..10000,0..10000] of integer;
   nr,s:array[0..50000] of integer;
   fl:text;
begin
   assign(fl,'sortaret.in');
   reset(fl);
   readln(fl,n,m);
   for i := 1 to m do
     begin
        readln(fl,a1,a2);
        g[a2,0] := g[a2,0]+1;
        g[a2,g[a2,0]] := a1;
        nr[a1] := nr[a1]+1;
     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.