火星人-蓝桥

题目链接:1.火星人 - 蓝桥云课 (lanqiao.cn)

解题思路:只要判断全排列从小到大的序数等于加上的数的大小即可,也就是排列加上的数的次数。

下面是c++代码:

#include 
#include
using namespace std;
int main()
{
    // 请在此输入您的代码
    int n, m, arr[10000], index = 1;
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    do {
        if (index == m + 1) {
            for (int i = 0; i < n; i++) {
                cout << arr[i] << " ";
            }
            break;
        }
        index++;
    } while (next_permutation(arr, arr + n));
    return 0;
}

你可能感兴趣的:(算法,c++,数据结构)