鬼吹灯之湘西疑陵
Problem Description
现有n种商品,每种商品有Si件,每种商品的价格和质量分别为Pi和Mi。你现在有钱V,问能购买的商品的总质量最大为多少。
Input
多组输入。 对于每组输入:
第一行两个整数n,V(1 <= n <= 3,1 <= V <= 1,000,000,000)。
接下来的n行,每行三个整数Si,Pi,Mi,分别代表第i种物品的数量,价格与质量(1 <= Si <= 100,1 <= Pi <= 1,000,000,000 , 1 <= Mi <= 1,000,000,000)。
Output
对于每组数据,输出一个整数代表答案。
Sample Input
1 10
10 1 10
Sample Output
100
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
int n;
long long v,sum=-1,ans,s[4],m[5],p[5];
while(~scanf("%d%lld",&n,&v))
{
sum=-1;
memset(s,0,sizeof(s));
memset(p,0,sizeof(p));
memset(m,0,sizeof(m));
for(int i=0; i<n; i++)
{
scanf("%lld%lld%lld",&s[i],&p[i],&m[i]);
}
for(int i=0; i<=s[0]; i++)
{
for(int j=0; j<=s[1]; j++)
{
for(int k=0; k<=s[2]; k++)
{
if(v<i*p[0]+j*p[1]+p[2]*k)
{
continue;
}
ans=i*m[0]+j*m[1]+m[2]*k;
if(sum<ans)
{
sum=ans;
}
}
}
}
printf("%lld\n",sum);
}
}