代码
#include <bits/stdc++.h>
using namespace std;
int n, m, a[15], t[15][3], b[15], c[15], ans[6][15], sum;
void check ( )
{
// for (int i = 1; i <= m; i++) cout << c[i] << ' '; cout << '\n';
for (int i = 1; i <= m; i++)
if (a[c[i]] > t[i][1] || a[c[i]] > t[i][2]) return ;
sum++;
if (sum <= 5)
for (int i = 1; i <= m; i++)
ans[sum][i] = c[i];
}
void dfs (int k)
{
for (int i = 1; i <= n; i++)
if (!b[i])
{
c[k] = i;
b[i] = 1;
if (k == m) check ( );
else dfs (k + 1);
b[i] = 0;
}
}
int main ( )
{
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i], a[i] *= 2;
cin >> m;
for (int i = 1; i <= m; i++)
cin >> t[i][1] >> t[i][2], t[i][1] *= 2;
dfs (1);
cout << sum << '\n';
for (int i = 1; i <= min (sum, 5); i++)
for (int j = 1; j <= m; j++)
cout << ans[i][j] << (j == m ? '\n' : ' ');
return 0;
}
WA了,不知WA在何处,求调