#include<bits/stdc++.h> using namespace std; int a[20],n,c[20]; void dfs(int l,int r){ if(l>=r) return; int mid=(l+r)/2; dfs(l,mid); dfs(mid+1,r); int i=l,j=mid+1,k=1; while(i<=mid&&j<=r){ if(a[i]<a[j]) c[k++]=a[i++]; else c[k++]=a[j++]; } while(i<=mid) c[k++]=a[i++]; while(j<=r) c[k++]=a[j++]; for(int i=1;i<=r-l+1;i++){ a[l+i-1]=c[i]; } } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } dfs(1,n); for(int i=1;i<=n;i++){ cout<<a[i]<<" "; } return 0; } /************************************************************** Problem: 1010 User: liujinhao Language: C++ Result: Accepted Time:9 ms Memory:2072 kb ****************************************************************/