Cod sursa(job #371510)

Utilizator 05_YohnE1 La5c01 05_Yohn Data 5 decembrie 2009 16:39:39
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.79 kb
type pnod=^nod;
     nod= record
          info:longint;
          urm:pnod;
          end;

var v:array[1..50000]of pnod;
viz:array[1..50000]of boolean;
sol:array[1..50000]of longint;
n,m,i,x,y,c:longint;

procedure add(var p:pnod; x:longint);
var q:pnod;
begin
new(q);
q^.info:=x;
q^.urm:=p;
p:=q;
end;


procedure df(p:longint);
var q:pnod;
begin
q:=v[p];
viz[p]:=true;
while q<>nil do begin
      if not viz[q^.info] then df(q^.info);
      q:=q^.urm;
end;
inc(c);
sol[c]:=p;
end;

begin
assign(input,'sortaret.in');
reset(input);
assign(output,'sortaret.out');
rewrite(output);
read(n,m);
for i:=1 to m do begin
    read(x,y);
    add(v[x],y);
end;

c:=0;
for i:=1 to n do if not viz[i] then df(i);

for i:=c downto 1 do write(sol[i],' ');
close(output);
end.