#include<stdio.h>
#include<algorithm>
using namespace std;
int a[10005];
int main(){
int n,k,m,i;
while(~scanf("%d%d",&n,&k)){
m=1;
for(i=0;i<=n+1;i++)
a[i]=i+1;
while(next_permutation(a,a+n)){
m++;
if(m==k){
break;
}
}
for(i=0;i<n;i++){
if(i!=n-1)
printf("%d ",a[i]);
else printf("%d\n",a[n-1]);
}
}
return 0;
}
关于next_permutation,这里有一个原理讲的很清楚的,可以看看何为下一个排列以及实现细节
1027 Ignatius and the Princess II(next_permutation的应用)
猜你喜欢
转载自blog.csdn.net/qq_40061421/article/details/81009627
今日推荐
周排行