Cod sursa(job #303005)
var v:array[1..500000] of longint;
n,i:longint;
procedure pivot(s,d:longint; var m:longint);
var ii,jj,pi,pj,aux:longint;
begin
ii:=s; jj:=d; pi:=0; pj:=1;
while ii<jj do
begin
if v[ii]>v[jj] then
begin
aux:=v[ii]; v[ii]:=v[jj]; v[jj]:=aux;
aux:=pi; pi:=pj; pj:=aux;
end;
ii:=ii+pi; jj:=jj-pj;
end;
m:=ii;
end;
procedure sort(s,d:longint);
var m:longint;
begin
if s<d then
begin
pivot(s,d,m);
sort(s,m-1); sort(m+1,d);
end;
end;
begin
assign(input,'algsort.in'); reset(input);
assign(output,'algsort.out'); rewrite(output);
readln(n);
for i:=1 to n do read(v[i]);
sort(1,n);
for i:=1 to n do write(v[i],' ');
close(output);
close(input);
end.