Cod sursa(job #174232)

Utilizator cheery_g1rlHaller Emanuela cheery_g1rl Data 8 aprilie 2008 17:47:59
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1 kb
program sortare_topologica;
type lista=^element;
      element=record
                info:longint;
                a:lista;
              end;
var  f,g:text;
     fii:array[1..50000] of lista;
     viz:array[1..50000] of 0..1;
     l:lista;
     i,n,m,q,a,b:longint;
procedure dfs(q:longint);
    var w,p:lista;
    begin
      viz[q]:=1;
      p:=fii[q];
      while p<>nil do
         begin
           if viz[p^.info]=0 then dfs(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
     readln(f,a,b);
     new(l);
     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 dfs(i);
assign(g,'sortaret.out'); rewrite(g);

while l<>nil do
  begin
    write(g,l^.info,' ');
    l:=l^.a;
  end;
close(g);
end.