说了那么多。事实上就是遍历全排列
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstdlib> #include<queue> #include<map> #include<stack> #include<list> #include<vector> #include<cstring> #define maxn 10000+5 using namespace std; int a[maxn]; int main() { int n,m; while(cin>>n>>m) { for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<m;i++) next_permutation(a,a+n); cout<<a[0]; for(int i=1;i<n;i++) cout<<" "<<a[i]; cout<<endl; } return 0; }