Cod sursa(job #1169479)

Utilizator vasica38Vasile Catana vasica38 Data 11 aprilie 2014 14:31:38
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.88 kb
program p1;
type lista=^celula;
  celula=record
  info:longint;
  next:lista;
        end;
var a:array[0..50000] of lista;
    f,g:text;
    i,n,j,k,u,x,y,m:longint;
    sol:array[0..50000] of longint;
    viz:array[0..50000] of 0..1;

procedure add(x:longint; var p:lista);
var r:lista;
begin
 new(R);
 r^.info:=x;
 r^.next:=p;
 p:=r;
end;


procedure dfs(nod:longint);
var r:lista;
begin
r:=a[nod];
viz[nod]:=1;
 while r<> nil do begin
        if viz[r^.info]=0 then dfs(r^.info);
        r:=r^.next;
                end;
inc(U);
sol[u]:=nod;
end;



begin
assign(f,'sortaret.in');reset(F);
assign(g,'sortaret.out');rewrite(G);
readln(f,n,M);
for i:=1 to m do begin
        readln(f,x,y);
        add(y,a[x]);
                end;
for i:=1 to n do
        if viz[i]=0 then dfs(I);
for i:=n downto 1 do write(g,sol[i],' ');
close(F);
close(G);
end.