题解 P2705 【小球】
此题其实很简单,根本不用搜索
由于红球数等于红盒数,蓝球数等于蓝盒数,那么,放入红盒的蓝球数等于放入蓝盒的红球数
只需要把一个红球和一个蓝球算作一组,比较放入同色盒中和异色盒中每组的大小
如果同色盒中的大,就把所有的球放入同色盒中
如果异色盒中的大,就尽可能多地把球放入异色盒中,剩下的放入同色盒中
最后求出总分
附上代码
#include<cstdio>
using namespace std;
int main(){
int r,b,c,d,e,sum,k;
scanf("%d%d%d%d%d",&r,&b,&c,&d,&e);
if(r>b) k=1;
else k=0;//先判断一下蓝球和红球的数量
if(c+d>e+e) sum=r*c+b*d;//如果同色盒中的大
else{
if(k==1)//如果红球多
sum=b*2*e+(r-b)*c;
else sum=r*2*e+(b-r)*d;//如果蓝球多
}
printf("%d",sum);
return 0;
}