题目描述

描述

一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6。这些产品通常使用一个 6*6*h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。

输入

输入文件包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空格隔开,分别为1*1至6*6这六种产品的数量。输入文件将以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<bits/stdc++.h>
using namespace std;
int u[5]={0,5,3,1};
int main()
{
    while(1)
    {
        int a[7],Sum=0,coca;
        for(int i=1;i<=6;i++)
        {scanf("%d",&a[i]);Sum+=a[i];}
        if(Sum==0)break;
        coca=a[6]+a[5]+a[4]+ceil(a[3]/4.0);//计算6*6,5*5,4*4,3*3所需盒子数量
        int c2=5*a[4]+u[a[3]%4];//计算4*4&&3*3中剩下2*2盒子的数量
        if(a[2]>c2)coca+=ceil((a[2]-c2)/9.0);//2*2需要单独放的盒子数量
        int c1=36*(coca-a[6])-a[5]*25-a[4]*16-a[3]*9-a[2]*4;//计算前面盒子所剩1*1面积
        if(a[1]>c1)coca+=ceil((a[1]-c1)/36.0);//1*1需要单独放的盒子数量
        printf("%d\n",coca);
    }
}

最新文章

  1. oracle 第一章总结
  2. Android如何缩减APK包大小
  3. IDE-Sublime【1】-JsFormat插件格式化缩进问题
  4. Django表单验证
  5. Swift开发iOS应用过程中的问题和解决记录
  6. Scrum项目1.0
  7. uoj #5. 【NOI2014】动物园 kmp
  8. Swift -- SnapKit
  9. rpm包制作
  10. jquery mobile实现拨打电话功能的几种方法
  11. C++ 在dynamic_cast&amp;lt;&amp;gt;用法
  12. 七牛 在线管理 v0.1
  13. SpringCloud微服务架构
  14. 面试题:两种方法计算n!
  15. laravel自定义验证
  16. 基于Apache的阿里云部署Node.js服务器(Windows环境)
  17. Web(二)
  18. Python几种数据结构内置方法的时间复杂度
  19. windows下使用sed和tee命令
  20. web:频繁刷新浏览器的页面【小工具】

热门文章

  1. window、Linux 文本文件转换
  2. windows安装mongodb服务简洁版教程
  3. 应用程序连接hbase报错:java.net.SocketTimeoutException: callTimeout=60000
  4. windows怎么与虚拟机linux共享
  5. axios设置application/x-www-form-urlencoded
  6. Web容器初始化过程
  7. VS2017 配置glfw3
  8. 【Zookeeper系列】ZooKeeper管理分布式环境中的数据(转)
  9. HTTP 错误 500.19 - Internal Server Error 无法读取配置节 system.serviceModel 因为它缺少节声明
  10. 基于Schema配置切面