求助站外题
  • 板块学术版
  • 楼主My_Xuan
  • 当前回复12
  • 已保存回复12
  • 发布时间2022/11/12 17:45
  • 上次更新2023/10/27 03:14:04
查看原帖
求助站外题
679265
My_Xuan楼主2022/11/12 17:45

题目

代码

#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在何处,求调

2022/11/12 17:45
加载中...