#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int s[1050];
int dp[1050];
int cmp(const void *a,const void * b)
{
return *(int *)b-*(int *)a;
}
int maxx(int a,int b)
{return a>b?a:b;}
int main()
{
int n,i,j,sum,MAX;
while(~scanf("%d",&n),n)
{
memset(dp,0,sizeof(dp));
for(i=0;i<n;i++)
scanf("%d",&s[i]);
qsort(s,n,sizeof(s[0]),cmp);
MAX=s[0];
scanf("%d",&sum);
if(sum<5)
{
printf("%d\n",sum);
continue ;
}
sum=sum-5;
for(i=1;i<n;i++)
for(j=sum;j>=s[i];j--)
dp[j]=maxx(dp[j],dp[j-s[i]]+s[i]);
printf("%d\n",sum-dp[sum]+5-MAX);
}
return 0;
}
hdu 2546饭卡
最新推荐文章于 2021-04-12 05:38:22 发布