题目描述
某水果店以出售水果拼盘盈利。
该店铺共提供两种拼盘:
拼盘 1:包含 1 个苹果,1 个香蕉。
拼盘 2:包含 1 个梨,1 个橙子,1 个香蕉。
已知该店铺共有 a 个苹果,b 个梨,c 个橙子,d 个香蕉。
拼盘 1 的利润为 e 元,拼盘 2 的利润为 f 元。
水果店的生意很好,所有拼好的拼盘都会销售一空。
请问,利用现有水果拼装水果拼盘,能够获得的最大利润是多少?
注意,也许会有一些水果用不完,但这并不重要。
输入格式
第一行包含整数 T,表示共有 T 组测试数据。
每组数据占一行,包含 6 个整数,依次为 a,b,c,d,e,f。
输出格式
每组数据输出一行结果,表示最大利润。
数据范围
- 1≤T≤10。
- 1≤a,b,c,d≤105,
- 1≤e,f≤103。
输入样例:
3
4 5 6 3 1 2
12 11 13 20 4 6
17 14 5 21 15 17
输出样例:
6
102
325
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int a,b,c,d,e,f;
cin>>a>>b>>c>>d>>e>>f;
long long res=0;
for(int i=1;i<=d;i++)//这里遍历d是因为两种选择必有d
{
if(a!=0)//如何有苹果
{
if(e>=f)//如何拼盘1贵,则选1
{
res+=e;
a--;
}
else //拼盘2贵,优先选2
{
if(b==0||c==0)//如何不够选择2,只能选1
{
res+=e;
a--;
}
else //够,选2
{
res+=f;
b--,c--;
}
}
}
else if(b!=0&&c!=0) //没有苹果,且能选2,则选2
{
res+=f;
b--,c--;
}
}
cout<<res<<endl;
}
return 0;
}