#include<bits/stdc++.h>
using namespace std;
void merge(int a[],int l,int r){
if(l>=r){
return;
}
int mid=(l+r)/2;
merge(a,l,mid);
merge(a,mid+1,r);
int i=l,j=mid+1,k=l,b[114514];
while(i<=mid&&j<=r){
if(a[i]<a[j]){
b[k]=a[i];
k++;i++;
}
else{
b[k]=a[j];
k++;j++;
}
}
while(i<=mid){
b[k]=a[i];
k++;i++;
}
while(j<=r){
b[k]=a[j];
k++;j++;
}
for(int i=l;i<=r;i++){
a[i]=b[i];
}
}
int main(){
int a[114514],n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
merge(a,1,n);
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
这代码本地会错,洛谷就过了。