Cod sursa(job #148333)

Utilizator dascalu2Dascalu Andi FLorin dascalu2 Data 4 martie 2008 09:56:28
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.87 kb
type adresa= ^nod;
     nod= record
          inf:longint;
          adr:adresa;
          end;
var n,m,i,j,x,y,niv:longint;
    vc:array[1..50000]of adresa;
    t,viz:array[1..50000]of byte;
    et:array[1..50000]of longint;
    q:adresa;
procedure parc(nd:longint);
var p:adresa;
begin
     p:=vc[nd];
     while p<>nil do
     begin
          if viz[p^.inf]=0 then
          parc(p^.inf);
          p:=p^.adr;
     end;
     et[niv]:=nd;
     viz[nd]:=1;
     niv:=niv-1;
end;

begin
assign(input,'sortaret.in');
reset(input);
read(n,m);
for i:=1 to m do
begin
     read(x,y);
     new(q);
     q^.inf:=y;
     q^.adr:=vc[x];
     vc[x]:=q;
     t[y]:=1;

end;
close(input);
niv:=n;
for i:=1 to n do
    if(t[i]=0)then
      parc(i);
assign(output,'sortaret.out');
rewrite(output);
for i:=1 to n do
write(et[i],' ');
close(output);
end.