马掌门在研究阴阳互相转化的过程中发明了一种有趣的排序算法,他将这种排序算法命名为混元形意排序法。如果我们用C++实现该算法,可以得到以下的代码。
#define N 100009 int tmp[N]; void change(int arr[], int begin, int end) { if (begin >= end) return; int mid = (begin + end) / 2, size = 0; for (int i = mid + 1; i <= end; ++i) tmp[++size] = arr[i]; for (int i = begin; i <= mid; ++i) tmp[++size] = arr[i]; for (int i = 0; i < size; ++i) arr[i + begin] = tmp[i + 1]; } void sort(int arr[], int begin, int end) { if (begin >= end) return; int mid = (begin + end) / 2; sort(arr, begin, mid); sort(arr, mid + 1, end); if (arr[begin] > arr[mid + 1]) change(arr, begin, end); }
输入共一行,一个整数,表示你需要构造的数列长度为
。我们保证对于所有的输入数据均能构造出满足要求的数列。
在一行中输出这个数列,相邻元素以空格隔开。数列中元素必须为不超过的自然数。