比赛 |
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;
}