小球
题目描述
有 R R R 个红色盒子和 B B B 个蓝色盒子,还有 R R R 个红色小球和 B B B 个蓝色小球。每个盒子只能装一个小球,每个小球都要放在一个盒子里。
- 如果把一个红色小球放在一个红色盒子里,那么得分是 C C C。
- 如果把一个蓝色小球放在一个蓝色盒子里,那么得分是 D D D。
- 如果把一个红色小球放在一个蓝色盒子里,那么得分是 E E E。
- 如果把一个蓝色小球放在一个红色盒子里,那么得分也是 E E E。
现在给出 R , B , C , D , E R,B,C,D,E R,B,C,D,E。应该如何放置这些小球进盒子,才能使得总得分最大?输出最大的总得分。
输入格式
输入共一行 5 5 5 个整数,分别是 R , B , C , D , E R,B,C,D,E R,B,C,D,E。
输出格式
一个整数,表示最大总得分。
样例 #1
样例输入 #1
2 3 100 400 200
样例输出 #1
1400
样例 #2
样例输入 #2
2 3 100 400 300
样例输出 #2
1600
提示说明
数据范围
对于全部数据, 1 ≤ R ≤ 100 1 \le R \le 100 1≤R≤100, 1 ≤ B ≤ 100 1 \le B \le 100 1≤B≤100, − 1000 ≤ C , D , E ≤ 1000 -1000 \le C,D,E \le 1000 −1000≤C,D,E≤1000。
代码内容
// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <sstream>//整型转字符串
// #include <stack>//栈
// #include <deque>//堆/优先队列
// #include <queue>//队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll r,b,c,d,e;
cin>>r>>b>>c>>d>>e;
ll ans=0;
if(c+d>2*e) ans=r*c+b*d;
else
{
if(r>b) ans=b*2*e+(r-b)*c;
else ans=r*2*e+(b-r)*d;
}
cout<<ans<<endl;
return 0;
}