讨论 / 啦啦啦
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);

}

查看更多回复
提交回复