描述
一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有6个型号,它们的长宽分别为1×1,2×2,3×3,4×4,5×5,6×6。这些产品通常使用一个6×6×h的长方体包裹包装,然后邮寄给客户。因为邮费很贵,所以工厂要想方设法地减少每个订单运送时的包裹数量。他们很需要有一个好的程序以解决这个问题从而节省费用。现在这个程序由你来设计。
输入
每个订单信息用包括6个整数的一行数据表示,中间用空格隔开,分别为1×1至6×6这6种产品的数量。
输出
输出一个整数代表对应的订单所需的最小包裹数。
输入样例 1
0 0 4 0 0 1
输出样例 1
2
#include<stdio.h>
int main(){
int a,b,c,s,t,w;
scanf("%d %d %d %d %d %d",&a,&b,&c,&s,&t,&w);
int sum = 0;
int x,y; //装2x2和1x1的箱子个数
int p[4] = {0,5,3,1}; //3x3的箱子装完剩下空隙能装多少2x2的箱子
sum = w+t+s+(c+3)/4;
x = 5*s+p[c%4];
if(x<b){
sum += ((b-x+8)/9); //6x6箱子可以装9个2x2箱子
}
y = 36*sum - w*36 - 25*t - 16*s - 9*c - 2*b;
if(y<a){
sum += ((a-y+35)/36);
}
printf("%d",sum);
}