Cod sursa(job #340480)

Utilizator ionutz32Ilie Ionut ionutz32 Data 14 august 2009 21:21:10
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.95 kb
type ref=^nod;
nod=record
    nr:longint;
    adr:ref;
    end;
var pred:array[1..50000] of longint;
v:array[1..50000] of ref;
u:ref;
n,m,a,b,i,j:longint;
f,g:text;
begin
assign(f,'sortaret.in');
assign(g,'sortaret.out');
reset(f);rewrite(g);
readln(f,n,m);
for i:=1 to m do
    begin
    readln(f,a,b);
    pred[b]:=pred[b]+1;
    if v[a]=nil then
       begin
       new(v[a]);
       v[a]^.nr:=b;
       v[a]^.adr:=nil;
       end
    else
        begin
        new(u);
        u^.nr:=b;
        u^.adr:=v[a];
        v[a]:=u;
        end;
    end;
i:=1;
j:=1;
repeat
      if pred[i]=0 then
         begin
         write(g,i,' ');
         pred[i]:=-1;
         u:=v[i];
         while u<>nil do
               begin
               pred[u^.nr]:=pred[u^.nr]-1;
               u:=u^.adr;
               end;
         j:=i;
         end;
      i:=i+1;
      if i>n then
         i:=i-n;
until i=j;
close(f);close(g);
end.