#2#4错了,在线召唤神犇!
查看原帖
#2#4错了,在线召唤神犇!
583916
tjer楼主2022/2/10 15:07
#include <bits/stdc++.h>
#define maxn 100005
using namespace std;
int v, n, b[maxn], max1 = 100000, a[maxn];
void dfs(int sum, int i)
{
	if (sum > v)
	{
		return;
	}
	if (sum + a[i] > v)
	{
		max1 = min(v - sum, max1);
		return;
	}
	for (int j = i; j <= n; j++)
	{
		if (b[j] != 1)
		{
			b[j] = 1;
			dfs(sum + a[j], j);
			b[j] = 0;
		}
	}
}
int main()
{
	cin >> v >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}
	dfs(0, 1);
	cout << max1;
	return 0;
}

2022/2/10 15:07
加载中...