题记:用一个优先队列next_permutation即可,因为优先队列本身就是一个一个地生成下一个词典序更大的序列。
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+5;
typedef long long ll;
int a[N];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
int b=0;
do{
if(b==m)break;
b++;
}while(next_permutation(a+1,a+1+n));
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}