Pagini recente » Cod sursa (job #2982287) | Cod sursa (job #2448048) | Cod sursa (job #364839) | Cod sursa (job #602204) | Cod sursa (job #2492590)
var i,e,o,l,p,n:longint;
type vector = array[1..500003] of longint;
var arr:vector;
fin,fout:textfile;
procedure merge(var arr:vector;left,mid,right:longint);
var i,l,j,k,m:longint;
temp:vector;
begin
k:=1;
i:=left;
j:=mid+1;
while (i<=mid) and (j<=right) do begin
if arr[i]>arr[j] then begin
temp[k]:=arr[j];
inc(j);
inc(k);
end
else begin
temp[k]:=arr[i];
inc(i);
inc(k);
end;
end;
for m:=i to mid do begin
temp[k]:=arr[m];
inc(k);
end;
for m:=j to right do begin
temp[k]:=arr[m];
inc(k);
end;
for i:=left to right do begin
arr[i]:=temp[i-left+1];
end;
end;
procedure mergesort(var arr:vector;left,right:longint);
var mid:longint=0;
begin
if left<right then begin
mid:=(right+left) div 2;
mergesort(arr,left,mid);
mergesort(arr,mid+1,right);
merge(arr,left,mid,right);
end;
end;
begin
assign(fin,'algsort.in');
reset(fin);
assign(fout,'algsort.out');
rewrite(fout);
readln(fin,n);
for i:=1 to n do begin
read(fin,arr[i]);
end;
mergesort(arr,1,n);
for i:=1 to n do
write(fout,arr[i],' ');
close(fin);
close(fout);
end.