http://poj.org/problem?id=1017
#include<iostream> #include<algorithm> #include<cmath> using namespace std; int main(){ int space[4]={0,5,3,1}; int a1,a2,a3,a4,a5,a6; while(cin>>a1>>a2>>a3>>a4>>a5>>a6&&(a1||a2||a3||a4||a5||a6)!=0){ int ans=0; ans+=a6+a5+a4+ceil(a3/4.0); int n2=5*a4+space[a3%4];//放3,4的箱子能放多少个2 if(n2<a2){ ans+=ceil((a2-n2)/9.0);//2独立放箱子 } int n1=ans*36-a6*36-a5*25-a4*16-a2*4-a3*9;//在现有的箱子能放1的个数 if(n1<a1){ ans+=ceil((a1-n1)/36.0); //1单独放箱子 } cout<<ans<<endl;; } return 0; }