Cod sursa(job #1355447)

Utilizator mariusadamMarius Adam mariusadam Data 22 februarie 2015 18:32:01
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.77 kb
program sortare_topologica;
var t:array[0..1,1..200000] of longint;
    p,sol:array[1..50000] of longint;
    viz:array[1..50000] of 0..1;
    i,n,m,nr:longint;
    f,g:text;

procedure citire;
var i,j,k,z:longint;
begin
 assign(f,'sortaret.in'); reset(f);
 readln(f,n,m);
 k:=0;
 for z:=1 to m do
  begin
   readln(f,i,j);
   k:=k+1; t[0,k]:=j; t[1,k]:=p[i]; p[i]:=k;
  end;
 close(f);
end;

procedure df(nod:longint);
var z:longint;
begin
 z:=p[nod]; viz[nod]:=1;
 while z<>0 do
  begin
   if viz[t[0,z]]=0 then
    df(t[0,z]);
   z:=t[1,z];
  end;
 nr:=nr+1; sol[nr]:=nod;
end;

begin
 assign(g,'sortaret.out'); rewrite(g);
 citire;
 for i:=1 to n do
  if viz[i]=0 then
   df(i);
 for i:=nr downto 1 do
  write(g,sol[i],' ');
 close(g);
end.