第二个样例开始TLE,求助! 主要是用c++的next_permutation函数,枚举每一种情况,如果和输入的数组一样就停止枚举,然后输出,但是不知道为什么会超时
#include<stdc++.h>
using namespace std;
int main() {
int a[10005];
ios::sync_with_stdio(0);
int n = 0;
int m = 0;
scanf_s("%d %d", &n, &m);
int b[10005];
for (int i = 1; i <= n; i++) {
scanf_s("%d", &b[i]);
}
sort(b + 1, b + 1 + n);
for (int i = 1; i <= n; i++) {
a[i] = i;
}
int cnt = 0;
int cnt2 = 0;
int cnt3 = -1;
do {
int f = 1;
for (int i = 1; i <= n; i++) {
if (a[i] != b[i]) {
f = 0;
break;
}
}
if (f == 1) {
cnt += m;
cnt3 = cnt;
}
if (cnt2 == cnt3) {
for (int i = 1; i <= n; i++) {
printf("%d", a[i]);
if (i > 0 && i < n)
printf(" ");
}
break;
}
cnt++; cnt2++;
} while (next_permutation(a + 1, a + 1 + n));
return 0;
}