Cod sursa(job #1101481)

Utilizator Mihai_ChihaiMihai Chihai Mihai_Chihai Data 8 februarie 2014 15:45:57
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.89 kb
program sortare_topologica;
type lista=^celula;
    celula=record
         info:longint;
         urm:lista;
         end;
var a:array[0..50005] of lista;
    viz:array[0..50005] of 0..1;
    st:array[0..50005] of longint;
    n,m,i,j,x,y,lev,k:longint;
    r:lista;
procedure dfs(nod:longint);
var r:lista;
    i:longint;
begin
new(r);
viz[nod]:=1;
r:=a[nod];
while r<>nil do begin
       if (viz[r^.info]=0) then dfs(r^.info);
       r:=r^.urm;
       end;
inc(lev);
st[lev]:=nod;
end;
begin
assign(input,'sortaret.in'); reset(input);
assign(output,'sortaret.out'); rewrite(output);
readln(n,m);
for i:=1 to m do begin
       readln(x,y);
       new(r);
       r^.info:=y;
       r^.urm:=a[x];
       a[x]:=r;
       end;
k:=0; lev:=0;
for i:=1 to n do viz[i]:=0;
for i:=1 to n do
 if viz[i]=0 then dfs(i);
for i:=lev downto 1  do write(st[i],' ');
close(output);
end.