Cod sursa(job #49871)

Utilizator cheery_g1rlHaller Emanuela cheery_g1rl Data 6 aprilie 2007 15:16:21
Problema Schi Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.06 kb
type inte=1..30001;
var  f,g:text;
    i,j,n,x:inte;
    vv,v:array[1..30000] of integer;
procedure quick(ss,d:longint);
      var aux,a,b,ia:longint;
     begin
       a:=ss; b:=d;
       repeat
         while v[a]<v[b] do dec(b);
          aux:=v[a]; v[a]:=v[b]; v[b]:=aux;
          aux:=vv[a]; vv[a]:=vv[b]; vv[b]:=aux;
          inc(a); ia:=1;
          if b>a then
             begin
               while v[a]<v[b] do inc(a);
               aux:=v[a]; v[a]:=v[b]; v[b]:=aux;
               aux:=vv[a]; vv[a]:=vv[b]; vv[b]:=aux;
               dec(b); ia:=0;
             end;
       until b<=a;
       if ss<a-ia then quick(ss,a-ia);
       if a-ia+1<d then quick(a-ia+1,d);
     end;

begin
assign(f,'schi.in');
reset(f);
assign(g,'schi.out');
rewrite(g);
readln(f,n);
for i:=1 to n do begin v[i]:=n+1; vv[i]:=i;end;
for i:=1 to n do
   begin
     readln(f,x);
     v[i]:=x;
if i>1 then     for j:=1 to i-1 do if v[j]>=x then inc(v[j]);

   end;
quick(1,n);
for i:=1 to n do writeln(g,vv[i]);
close(g);                  close(f);
end.