#include <iostream> using namespace std; #define LEN 100 int a[LEN]; void merge(int start, int mid, int end) { int n1 = mid - start + 1; int n2 = end - mid; int* left = new int[n1]; int* right = new int[n2]; int i, j, k; for (i = 0; i < n1; i++) left[i] = a[start+i]; for (j = 0; j < n2; j++) right[j] = a[mid+1+j]; i = j = 0; k = start; while (i < n1 && j < n2) if (left[i] < right[j]) a[k++] = left[i++]; else a[k++] = right[j++]; while (i < n1) a[k++] = left[i++]; while (j < n2) a[k++] = right[j++]; } void sort(int start, int end) { int mid; if (start < end) { mid = (start + end) / 2; sort(start, mid); sort(mid+1, end); merge(start, mid, end); } } int main() { int n, i; cin >> n; for(i = 0; i < n; i ++) cin >> a[i]; sort(0, n-1); for(i = 0; i < n; i ++) cout << a[i] << " "; cout << endl; return 0; }