Cod sursa(job #243269)

Utilizator cheery_g1rlHaller Emanuela cheery_g1rl Data 12 ianuarie 2009 16:19:55
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.04 kb
type lista=^element;
          element=record
               info:longint;
               a:lista;
                  end;
var f,g:text;
    i,n,m,a,b:longint;
    l:lista;
    fii:array[1..50000] of lista;
    viz:array[1..50000] of 0..1;
procedure parcurgere(q:longint);
         var p,w:lista;
         begin
           viz[q]:=1;
           p:=fii[q];
           while p<>nil do
             begin
               if viz[p^.info]=0 then parcurgere(p^.info);
               p:=p^.a;
             end;
           new(w);
           w^.info:=q;
           w^.a:=l; l:=w;
         end;
begin
assign(f,'sortaret.in'); reset(f);
readln(f,n,m);
for i:=1 to n do
   begin
     viz[i]:=0; fii[i]:=nil;
   end;
for i:=1 to m do
   begin
     new(l);
     readln(f,a,b);
     l^.info:=b;
     l^.a:=fii[a];
     fii[a]:=l;
   end;
close(f);
l:=nil;
for i:=1 to n do
  if viz[i]=0 then parcurgere(i);
assign(g,'sortaret.out'); rewrite(g);
while l<>nil do
   begin
     write(g,l^.info,' ');
     l:=l^.a;
   end;
close(g);
end.