caoyue2017 2017-09-07 22:53:32
点我顶贴
收藏
删除
#include<cstdio>
int kl[30],jk[30];
int f[301]={0};
int maxx(int x,int y){return x>y?x:y;}
int main()
{
f[0]=1;
int n;scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d",&jk[i]);
for (int i=1;i<=n;i++) scanf("%d",&kl[i]);
for (int i=1;i<=n;i++)
{
for (int j=99;j>=0;j--)
{
if (f[j]!=0)
{
f[j+jk[i]]=maxx(f[j+jk[i]],f[j]+kl[i]);
}
}
}
int max=0;
for (int i=1;i<=99;i++)
{
if (f[i]>=max) max=f[i];
}
if(max==0) max++;
printf("%d",max-1);
}