本题我们会用到函数next_permutation(start,end),是头文件algorithm标准库中的一个标准函数,用来表示[start,end]内存的数组中产生一个字典排序,比如[1 , 2 ,3]到[2 ,3, 1]再到[3 , 1, 2]这样的,这个函数的复杂度为(n!)所以数值不能大。
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int a[10100],n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>a[i];
for(;m--;)
next_permutation(a,a+n);
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
}