紧急求助,WA10分
查看原帖
紧急求助,WA10分
823906
13813675795hzq楼主2023/3/19 20:03
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;

int v, need[26], g, ing[16][26], have[26], ans[26];

void dfs(int i, int cnt, int cur)
{
	if (i < 1)
	{
		for (int j = 1; j <= v; j++)
		{
			if (have[j] < need[j]) return;
		}
		cout << cnt << ' ';
		for (int j = cur; j >= 1; j--)
		{
			cout << ans[j] << ' ';
		}
		exit(0);
	}
	dfs(i-1, cnt, cur);
	for (int j = 1; j <= v; j++)
	{
		have[j] += ing[i][j];
	}
	cur++;
	ans[cur] = i;
	dfs(i-1, cnt+1, cur);
}

int main(){
	cin >> v;
	for (int i = 1; i <= v; i++)
	{
		cin >> need[i];
	}
	cin >> g;
	for (int i = 1; i <= g; i++)
	{
		for (int j = 1; j <= v; j++)
		{
			cin >> ing[i][j];
		}
	}
	dfs(g, 0, 0);
	return 0;
}
2023/3/19 20:03
加载中...