




//Author:PanDaoxi
#include <iostream>
#include <cmath>
using namespace std;
int a1,a2,a3,a4,a5,a6,sum=0;
int main(){
cin>>a1>>a2>>a3>>a4>>a5>>a6;
sum=a4+a5+a6;
sum+=ceil(a3/4.0); //向上取整
a3%=4; //得到多余a3商品
a1-=min(a1,a5*11); //a5商品:用a1填空
if(a2<a4*5){ //a4填空:2*2的地方
a1-=min(a1,(a4*5-a2)*4);
}
a2-=min(a2,a4*5);
//a3填空
if(a3==3){
if(!a2){
a1-=min(a1,4); //先占2*2的位置
}
a2-=min(a2,1);
a1-=min(a1,5);
}
if(a3==2){
if(a2<3){
a1-=min(a1,(3-a2)*4);
}
a2-=min(a2,6);
a2-=min(a1,3);
}
if(a3==1){
if(a2<5){
a1-=min(a1,(5-a2)*4);
}
a1-=min(a1,7);
a2-=min(a2,5);
}
sum+=ceil(a2/9.0);
a2%=9;
if(a2){ //a2箱子不为0
a1-=min(a1,(9-a2)*4);
}
sum+=ceil(a1/36);
cout<<sum<<endl;
return 0;
}
本文深入探讨了C++中贪心算法的应用,通过实例分析展示了如何利用贪心策略解决复杂问题,揭示了贪心算法在优化问题上的高效性和实用性。
1万+

被折叠的 条评论
为什么被折叠?



