注意数据范围 10e9 ~ 2e31 超int了
#include<iostream>
#define ll long long
using namespace std;
const ll N = 1e5+10;
ll n;
ll a[N];
ll tmp[N];
void merge_sort(ll l,ll r){
if(l >= r) return;
ll mid = (l + r) / 2;
merge_sort(l,mid);
merge_sort(mid + 1,r);
ll k = 0,i = l,j = mid + 1;
while(i <= mid && j <= r){
if(a[i] <= a[j]) tmp[k++] = a[i++];
else tmp[k++] = a[j++];
}
while(i <= mid) tmp[k++] = a[i++];
while(j <= r) tmp[k++] = a[j++];
for(ll m = l,k = 0;m <= r;m++) a[m] = tmp[k++];
}
void solve(){
cin >> n;
for(ll i = 0;i < n;i++) cin >> a[i];
merge_sort(0,n-1);
for(ll i = 0;i<n;i++) cout<< a[i]<<" ";
}
int main(){
solve();
}