一道DALIOJ的题 但我知道我这神奇的代码为啥会错
题目 有 R 个红色盒子和 B 个蓝色盒子,还有 R 个红色小球和 B 个蓝色小球。每个盒子只能装一个小球,每个小球都要放在一个盒子里。如果把一个红色小球放在一个红色盒子里,那么得分是 C。如果把一个蓝色小球放在一个蓝色盒子里,那么得分是 D。如果把一个红色小球放在一个蓝色盒子里,那么得分是 E。如果把一个蓝色小球放在一个红色盒子里,那么得分也是 E。现在给出 R,B,C,D,E。应该如何放置这些小球进盒子,才能使得总得分最大?输出最大的总得分。
输入 一行,5 个整数,分别是 R,B,C,D,E。 输出
一个整数,最大总得分。
样例 输入 2 3 100 400 200 输出 1400
我的逆天代码
#include<bits/stdc++.h>
#define MIN 1e9
using namespace std;
int r,b,c,d,e,total,s=0,Min=MIN;
int main(){
cin>>r>>b>>c>>d>>e;
while(c>e&&d>e){
Min=min(r,b);
s=s+Min*e;
r=r-Min;
b=b-Min;
s=s+r*c+b*d;
break;
}
while(c>e){
s=s+r*c;
Min=min(r,b);
s=s+Min*e;
b=b-Min;
s=s+b*d;
break;
}
while(d>e){
s=s+b*d;
Min=min(r,b);
s=s+Min*e;
r=r-Min;
s=s+r*c;
break;
}
if(c<=e&&d<=e){
total=r+b;
s=s+total*e;
}
cout<<s<<endl;
return 0;
}