悬赏一个关注哦~
#include <stdio.h>
int p[35], f[20010][35] = {0};
int main(void)
{
int v, n, i, j;
scanf("%d%d", &v, &n);
for (i = 1; i <= n; i ++)
scanf("%d", &p[i]);
for (i = 1; i <= n; i ++)
for (j = 1; j <= v; j ++)
{
if (p[i] > j)
f[i][j] = f[i-1][j];
if (p[i] == j)
f[i][j] = (p[i] > f[i-1][j]) ? p[i] : f[i-1][j];
if (p[i] < j)
f[i][j] = (p[i] + f[i-1][j-p[i]] > f[i-1][j]) ?
p[i] + f[i-1][j-p[i]] : f[i-1][j];
}
printf("%d\n", v - f[n][v]);
return 0;
}