include [HTML_REMOVED]
using namespace std;
const int N=100010;
int q[N], tmp[N];
int n;
//please distinct left instead of l , beacaus l(left) is similar to 1(onr)
void merge_sort(int l, int r){
if(l>=r) return;
int mid=(l+r)>>1;
//int mid = l + r >> 1;
merge_sort(l, mid);
merge_sort(mid+1, r);
// if (l >= r) {
// return;
// }
// int mid = l + r >> 1;
// merge_sort(l, mid), merge_sort(mid + 1, r);
int k=0;
int i=l;
int j=mid+1;
while(i<=mid && j<=r){
if(q[i]<q[j]) {
tmp[k++]=q[i++];
}else {
tmp[k++]=q[j++];
}
}
while(i<=mid) tmp[k++]=q[i++];
while(j<=r) tmp[k++]=q[j++];
for (int a=l,b=0;a<=r;a++,b++) q[a]=tmp[b];
}
int main(){
scanf(“%d”, &n);
for(int i=0; i<n;i++) scanf(“%d”, &q[i]);
merge_sort(0,n-1);
for(int i=0; i<n;i++) printf("%d ", q[i]);
return 0;
}
// #include[HTML_REMOVED]
// using namespace std;
// const int N = 1e5 + 10;
// int n;
// int q[N], tmp[N];
// void merge_sort(int l, int r) {
// if (l >= r) {
// return;
// }
// int mid = l + r >> 1;
// merge_sort(l, mid), merge_sort(mid + 1, r);
// int i = l, j = mid + 1, k = 0;
// while (i <= mid && j <= r) {
// if (q[i] < q[j]) {
// tmp[k] = q[i];
// } else {
// tmp[k] = q[j];
// }
// }
// //扫尾
// while (i <= mid) {
// tmp[k] = q[i];
// }
// while (j <= r) {
// tmp[k] = q[j];
// }
// for (int i = l, j = 0; i <= r; i, j) {
// q[i] = tmp[j];
// }
// }
// int main(){
// scanf(“%d”, &n);
// for(int i=0; i<n;i++) scanf(“%d”, &q[i]);
// merge_sort(0,n-1);
// for(int i=0; i<n;i++) printf(“%d “, q[i]);
// return 0;
// }