題目描述
一個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有6個型號,他們的長寬分別爲11, 22, 33, 44, 55, 66。這些產品通常使用一個 66h 的長方體包裹包裝然後郵寄給客戶。因爲郵費很貴,所以工廠要想方設法的減小每個訂單運送時的包裹數量。他們很需要有一個好的程序幫他們解決這個問題從而節省費用。現在這個程序由你來設計。
輸入數據
輸入包括多行,每一行代表一個訂單。每個訂單裏包括6個整數t1,t2,t3,t4,t5,t6,中間用空格隔開,分別爲11 ~ 66這六種產品的數量。以6個0結束。
輸出要求
除了輸入的最後一行6個0以外,輸入文件裏每一行對應着輸出文件的一行,每一行輸出一個整數代表對應的訂單所需的最小包裹數。
樣例輸入
0 0 4 0 0 1
7 5 1 0 0 0
0 0 0 0 0 0
輸出樣例
2
1
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,e,f; // 產品規格
int x=0,y=0,n=0; // x:表示能放下1*1的個數 , y:表示能放下2*2的個數 , n:包裹數
while(true){
cin>>a>>b>>c>>d>>e>>f;
if(a==0 && b==0 && c==0 && d==0 && e==0 && f==0)
break;
n=f+e+d+(c+3)/4; // 計算大塊頭所需箱子數
y=d*5; // 可知6*6、5*5都放不了2*2的,一個箱子放了4*4的還能放5個2*2的
if(c%4 == 1)
y+=c*5;
if(c%4 == 2)
y+=c*3;
if(c%4 == 3)
y+=c*1;
if(b>y) // 如果2*2的個數大於能放得下2*2的個數,要加箱子
n+=(b-y+8)/9;
x=n*36-f*36-e*25-d*16-c*9-b*4;
if(a>x) // 同上
n+=(x-a+35)%36;
cout<<n<<endl;
}
return 0;
}