#include <iostream>
#include <cstdlib>
using namespace std;
int s[10005];
int a[10005];
int vis[10005];
int n, m, zzjg, sum, d;
bool flagg = false;
void dfs(int k){
if(k > n){
sum++;
if(sum == d){
for(int i = 1;i < k;i++){
cout << s[i] << " ";
}
exit(0);
}
if(flagg) return;
bool flag = true;
for(int i = 1;i < k;i++){
if(a[i] != s[i]){
flag = false;
break;
}
}
if(!flag){
return;
}
flagg = true;
d = sum + m;
return;
}
for(int i = 1;i <= n;i++){
if(vis[i] == 0){
vis[i] = 1;
s[k] = i;
dfs(k + 1);
vis[i] = 0;
}
}
}
int main(){
cin >> n >> m;
for(int i = 1;i <= n;i++){
cin >> a[i];
}
dfs(1);
return 0;
}
只A了1,3点
大佬求助