oj2564
#include <cstdio>
#include <algorithm>
using namespace std;
int v[1005],w[1005];
int main()
{
int t,b;//balance times
while(~scanf("%d",&t))
{
if(t==0)
break;
for(int i=0;i<t;i++)
{
scanf("%d",&v[i]);
}
scanf("%d",&b);
if(b<5)//balance小于5直接输出
{
printf("%d\n",b);
continue;
}
sort(v,v+t);//从小到大排列
for(int i=0;i<t-1;i++)//最大价值的菜最后一个减
for(int j=b-5;j>=v[i];j--)
w[j]=max(w[j],w[j-v[i]]+v[i]);
printf("%d\n",b-w[b-5]-v[t-1]);
memset(w,0,sizeof(w));
}
}