链接:传送门
题意:略
思路:next_permutation(),水,但是要注意一点的是如果是最后一个排列next_permutation会返回第一个排列并结束,所以如果到了最后一个排列还不是第k个就处理一下即可
/*************************************************************************
> File Name: 31.cpp
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年04月19日 星期三 22时15分06秒
************************************************************************/#include<cstdio>
#include<algorithm>
using namespace std;int t,n,k;
int s[1034];
int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++)scanf("%d",s+i);
int cnt = 0 , i;
do{
cnt++;
for(i=0;i<n;i++)
if(s[i]!=n-i)break;
if(i==n){
cnt++;
for(int i=0;i<n;i++)s[i]=i+1;
}
if(cnt == k+1)break;
}while(next_permutation(s,s+n));
for(int i=0;i<n;i++)printf("%d%c",s[i],i==n-1?'\n':' ');
}
return 0;
}