#include<bits/stdc++.h>
using namespace std;
const int maxn=10005;
int number[maxn],output[maxn],used[maxn];
int step=0,total=0;
int mycount=0;
void print(){
for(int m=0;m<total;m++){
printf("%d ",output[m]);
}
printf("\n");
}
void dfs(int k){
if(k==total){
mycount++;
if(mycount==step+1)
print();
//exit(0);
}
for(int m=1;m<=total;m++){
if(!used[number[m]]){
output[k]=number[m];
used[number[m]]=1;
dfs(k+1);
used[number[m]]=0;
}
}
}
int main()
{
freopen("test.txt","r",stdin);
cin>>total;
cin>>step;
for(int m=1;m<=total;m++){
cin>>number[m];
}
dfs(0);
return 0;
}
有大佬写的剪枝,有点没太看懂...