Pagini recente » Rezultatele filtrării | Borderou de evaluare (job #1501192) | Cod sursa (job #34267) | Cod sursa (job #404366)
Cod sursa(job #404366)
const maxn=500000;
type vector=array[1..maxn]of longint;
var n,i:longint;
v:vector;
procedure interschimba(var a,b:longint);
begin
a:=a xor b;
b:=b xor a;
a:=a xor b;
end;
procedure quicksort(var v:vector;p,q:longint);
var a,b,m:longint;
begin
a:=p;
b:=q;
m:=v[(a+b)shr 1];
repeat
while v[a]<m do inc(a);
while v[b]>m do dec(b);
if a<=b then begin
if a<>b then interschimba(v[a],v[b]);
inc(a);
dec(b);
end
else break;
until a>b;
if a<q then quicksort(v,a,q);
if p<b then quicksort(v,p,b);
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]);
quicksort(v,1,n);
for i:=1 to n do write(v[i],' ');
close(output);
close(input);
end.