记录编号 269804 评测结果 AAAAAAAAAA
题目名称 逛街 最终得分 100
用户昵称 Gravatarliu_runda 是否通过 通过
代码语言 C++ 运行时间 0.030 s
提交时间 2016-06-14 06:33:34 内存使用 1.10 MiB
显示代码纯文本
#include<cstdio>
int f[2][1005][105];
int w[305],t[305],v[305],h[305];
int max(int a,int b){
	return a>b?a:b;
}
int main(){
	freopen("shop.in","r",stdin);
	freopen("shop.out","w",stdout);
	int n,x,y;scanf("%d %d %d",&n,&x,&y);
	for(int i=1;i<=n;++i)scanf("%d %d %d %d",w+i,v+i,t+i,h+i);
	int flag=1;
	int ans=0;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=x;++j){
			for(int k=1;k<=y;++k){
				f[flag][j][k]=f[flag^1][j][k];
				if(j>=w[i]&&k>=v[i])f[flag][j][k]=max(f[flag][j][k],f[flag^1][j-w[i]][k-v[i]]+t[i]);
			}
		}
		for(int j=1;j<=x;++j){
			for(int k=1;k<=y;++k){
				if(j>=w[i]*h[i]&&k>=v[i]*h[i])f[flag][j][k]=max(f[flag][j][k],f[flag^1][j-w[i]*h[i]][k-v[i]*h[i]]+t[i]*h[i]);
				
			}
		}
		flag^=1;
	}
	printf("%d\n",f[flag^1][x][y]);
	fclose(stdin);fclose(stdout);
	return 0;
}