NC217237. 不讲武德
描述
马掌门在研究阴阳互相转化的过程中发明了一种有趣的排序算法,他将这种排序算法命名为混元形意排序法。如果我们用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); }
输入描述
输入共一行,一个整数 ,表示你需要构造的数列长度为 。我们保证对于所有的输入数据均能构造出满足要求的数列。
输出描述
在一行中输出这个数列,相邻元素以空格隔开。数列中元素必须为不超过 的自然数。
示例1
输入:
5
输出:
7 5 10 2 9
C++(clang++11) 解法, 执行用时: 3ms, 内存消耗: 408K, 提交时间: 2021-01-16 22:20:33
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; for(int i=1;i<=n;i++) cout<<rand()%1000000<<" "; }
Python3(3.9) 解法, 执行用时: 21ms, 内存消耗: 2868K, 提交时间: 2021-01-22 20:42:01
x=input().split('\x005')[0] while x[-1] not in "0123456789": x=x[:-2] n=int(x) print("1 3 2 "+"4 "*(n-3))