[HTOI-4] D. Kingdom F
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
终于,小A来到了此行的终点:F国首都S城。
小A和一众珂学家正在研究€的核心代码。
题目描述
€的核心代码是一个自动分析程序,这个程序的目标是找到敌军防守最弱的地方并实施打击,在这其中,找到敌军防守最弱的地方有一段不可或缺的代码:排序。
考虑到要使€的运行速度最快,珂学家们使用了快速排序算法,代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,cnt;
mt19937 rnd(time(0));
int a[100005];
void qsort(int l,int r){
if(l>=r){
return;
}
int i = l,j = r,x = a[rnd()%(r-l+1)+l];
while(i<=j){
while(a[i]<x){
i++;
}
while(a[j]>x){
j--;
}
if(i<=j){
swap(a[i],a[j]);
i++,j--;
}
}
qsort(l,j);
qsort(i,r);
}
int main(){
cin >> n;
for(int i=0;i<n;i++){
cin >> a[i];
}
qsort(0,n-1);
for(int i=0;i<n;i++){
cout << a[i] << " ";
}
return 0;
}
这个程序的作用是将 到 从小到大排序,珂学家们为了防止出现一些特殊的情况,使得复杂度达到最差的 ,他们在选取基准值的时候使用了随机数。
然而,小A发现,随机数的生成并不是真正的随机 ,而是由珂学家们指定的一个序列 得出,具体来说,每次取的随机值分别是 ,以此类推。
现在,小A想知道,如果按上面提到的方式来生成随机数,哪个序列能使 程序的递归深度最深?
由于满足条件的序列很多,小A只想知道字典序最小的序列。
输入格式
第一行两个正整数 。
第二行 个正整数 。
输出格式
输出答案。
样例 #1
样例输入 #1
4 2
1 0
样例输出 #1
1 4 2 3
提示
对于 的数据,。
对于 的数据,。
对于 的数据,,。