解题思路
1.获取输入n,m
2.获取火星人手指的排列顺序,存放在数组a[N]中
3.加m的结果相当于,以当前排列顺序为基础,进行m次全排列后的排列顺序。因此循环m次,调用next_permutation函数进行全排列
4.输出m次全排列后的数组a,以空格隔开
#include<iostream> #include<algorithm> using namespace std; int main() { int n,m; cin>>n>>m; int a[n]; //获取火星人的排列顺序 for (int i = 0; i < n; ++i) { cin>>a[i]; } //加m,即进行m次全排列 for (int i = 0; i < m; ++i) { next_permutation(a,a+n); } //输出m次全排列后的数组a for (int i = 0; i < n; ++i) { cout<<a[i]<<" "; } return 0; }