比赛 20101025 评测结果 AAAAAAAAAA
题目名称 逛街 最终得分 100
用户昵称 了反取字名我擦 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2010-10-25 20:47:32
显示代码纯文本
#include<fstream>
#include<string>
#include<algorithm>

using namespace std;
ifstream fi("shop.in");
ofstream fo("shop.out");

int sp[300][4]={0};
int f[1001][101]={0};
int n,y,x;

int max1(int a,int b,int c)
{
	if(a>=b&&a>=c)
		return a;
	if(b>=c&&b>=a)
		return b;
	if(c>=a&&c>=b)
		return c;
}
int main()
{
	fi>>n>>x>>y;
	for(int i=0;i<n;i++)
		for(int j=0;j<4;j++)
			fi>>sp[i][j];
	for(int i=0;i<n;i++)
		for(int j=x;j>=0;j--)
			for(int k=y;k>=0;k--)
				if(k-sp[i][1]>=0&&j-sp[i][0]>=0&&k-sp[i][3]*sp[i][1]>=0&&j-sp[i][3]*sp[i][0]>=0)
					f[j][k]=max1(f[j][k],f[j-sp[i][0]][k-sp[i][1]]+sp[i][2],f[j-sp[i][3]*sp[i][0]][k-sp[i][3]*sp[i][1]]+sp[i][3]*sp[i][2]);
				else
					if(k-sp[i][1]>=0&&j-sp[i][0]>=0)
						f[j][k]=max1(f[j][k],f[j-sp[i][0]][k-sp[i][1]]+sp[i][2],0);
	fo<<f[x][y];
	fi.close();
	fo.close();
	return 0;
}