裝箱問題

3007 裝箱問題

Time Limit:1000MS  Memory Limit:65536K
Total Submit:112 Accepted:59

Description

一個工廠生產的產品形狀都是長方體,高度都是h,主要有1*1,2*2,3*3,4*4,5*5,6*6等6種。這些產品在郵寄時被包裝在一個6*6*h的長方體包裹中。由於郵費很貴,工廠希望減小每個訂單的包裹數量以增加他們的利潤。因此他們需要一個好的程序幫他們解決這個問題。你的任務就是設計這個程序。

Input

輸入包括多組測試數據,每一行代表一個訂單。每個訂單裏的一行包括六個整數,用空格隔開,從小到大分別爲這6種產品的數量。6個0表示文件結束。

Output

針對每個訂單輸出一個整數,佔一行,代表對應的訂單所需的最小包裹數。沒有多餘的空行。

Sample Input

0 0 4 0 0 1
7 5 1 0 0 0
0 0 0 0 0 0

Sample Output

2
1

Source




#include<stdio.h>
int main()
{
 int a,b,c,d,e,f;   //共有多少1,2,3,4,5,6盒子
 while(1)
 {
    scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f); 
    if(a==0&&b==0&&c==0&&d==0&&e==0&&f==0) break;
    int N;  //共需要N個盒子
    int x,y;  //1,2的空位
    N=f+e+d+(c+3)/4;
    int three[4]={0,5,3,1};
    y=5*d+three[c%4];
    if(b>y)
    {
        N+=(b-y+8)/9;
    }
    x=36*N-36*f-25*e-16*d-9*c-4*b;
    if(a>x)
    {
        N+=(a-x+35)/36;
    }
    printf("%d\n",N);
 }

    return 0;

      }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章