packets  

时间限制(普通/Java):1000MS/10000MS     运行内存限制:65536KByte
总提交: 27            测试通过: 14

描述

A factory produces products packed in square packets of the same height h and of the sizes 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. These products are always delivered to customers in the square parcels of the same height h as the products have and of the size 6*6. Because of the expenses it is the interest of the factory as well as of the customer to minimize the number of parcels necessary to deliver the ordered products from the factory to the customer. A good program solving the problem of finding the minimal number of parcels necessary to deliver the given products according to an order would save a lot of money. You are asked to make such a program.

输入

The input file consists of several lines specifying orders. Each line specifies one order. Orders are described by six integers separated by one space representing successively the number of packets of individual size from the smallest size 1*1 to the biggest size 6*6. The end of the input file is indicated by the line containing six zeros.

输出

The output file contains one line for each line in the input file. This line contains the minimal number of parcels into which the order from the corresponding line of the input file can be packed. There is no line in the output file corresponding to the last ``null'' line of the input file.

样例输入

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

样例输出

2
1

题目上传者

crq

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm> using namespace std;
int v[10];
int ava[10];
int cnt = 0; void work() {
cnt = 0;//init
int res;//剩余的
cnt += v[6];//v[6] == 0;
if(v[5]) { //v[5] == 0;
cnt += v[5];
ava[1] += v[5]*11;//ava[1] += 11;!!!
}
if(v[4]) {
cnt += v[4];
ava[2] += v[4] * 5;
}
if(v[3]) {
int tag = true;
cnt += v[3]/4 ;//v[3] < 4; 3*3*4 == 36;
res = v[3]%4; //占用了几个. if(res==0) tag = false;
else cnt++; if(res==1 && tag) {//占用一个3*3
ava[2] += 5;
ava[1] += 7;
tag = false;
}
if(res==2 && tag){//two 3*3
ava[2] += 3;
ava[1] += 6;
tag = false;
}
if(res==3 && tag) {
ava[2] += 1;
ava[1] += 5;
tag = false;
}
}
if(v[2]) {
if(ava[2] >= v[2]) {
ava[1] += (ava[2]-v[2]) * 4;
}
else {
v[2] -= ava[2];
cnt += v[2]/9;//2*2*9 = 36
res = v[2]%9;
if(res != 0) cnt++;
ava[1] += (9-res) * 4;
}
}
if(v[1]) {
if(ava[1]>=v[1]) {
return;
}
else {
v[1] -= ava[1];
cnt += v[1]/36;
res = v[1]%36;
if(res) cnt++;
}
}
return;
} int main()
{
memset(ava, 0, sizeof(ava));
memset(v, 0, sizeof(v));
while(scanf("%d%d%d%d%d%d", &v[1], &v[2], &v[3], &v[4], &v[5], &v[6])==6) {
if(v[0]==v[1] && v[1]==v[2]&&v[2]==v[3]&&v[3]==v[4]&&v[4]==v[5]&&
v[5]==v[6]&&v[6]==0) break;
work();
printf("%d\n", cnt);
memset(ava, 0, sizeof(ava));
memset(v, 0, sizeof(v));
}
return 0;
}

packets的更多相关文章

  1. The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

    今天项目中报了如下错误 The last packet sent successfully to the server was 0 milliseconds ago. The driver has n ...

  2. RUDP之二 —— Sending and Receiving Packets

    原文链接 原文:http://gafferongames.com/networking-for-game-programmers/sending-and-receiving-packets/ Send ...

  3. Packets(模拟 POJ1017)

    Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 47750 Accepted: 16182 Description ...

  4. PCI Express(三) - A story of packets, stack and network

    原文出处:http://www.fpga4fun.com/PCI-Express3.html Packetized transactions PCI express is a serial bus. ...

  5. MySQL报错:Packets larger than max_allowed_packet are not allowed 的解决方案

    在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet are not allowed”. 这是由于MySQL数据库有一个系 ...

  6. poj 1017 Packets 裸贪心

    Packets Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 43189   Accepted: 14550 Descrip ...

  7. What is martian source / martian packets

    Martian source / Martian packets In Linux, by default, packets are considered individually for routi ...

  8. openstack 控制节点大流量对外发包,nf_conntrack,table full droping packets

    某些人很MJJ,挂了N多代理来疯狂采集,把服务器带宽都耗尽了,没办法只好封掉一些! 目前发现的问题openStack kilo for ubuntu manuual运行一段时间后 云平台的控制节点p5 ...

  9. The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. (关于jdbc)

    The last packet sent successfully to the server was milliseconds ago. The driver has not received an ...

随机推荐

  1. (多对象)Json转换成List

    写的不好,请大家见谅. 1.Json 格式{"packages":[{“type”:”aaa”}],"zone_packages":[{"ticket ...

  2. C#与.Net Framework的各种版本和联系

    C#是微软公司发布的一种面向对象的.运行于.NET Framework之上的高级程序设计语言.并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新 ...

  3. iOS开发常用的第三方框架

    1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...

  4. JavaScript--对象-检查一个对象是否是数组

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 【USACO 1.4.2】时钟

    [题目描述] 考虑将如此安排在一个 3 x 3 行列中的九个时钟: |-------| |-------| |-------| | | | | | | | |---O | |---O | | O | ...

  6. ‘for’ loop initial declarations are only allowed in C99 mode

    #include <stdio.h>int main(){ for(int i=0;i<10;i++){ printf("\n%d",i); } return 0 ...

  7. ASP.Net MVC4排序检索分页的实现

    前言 上一节我们做到了如下的一个基础查询页面.本节我们向这个页面中加入排序.搜索和分页功能. 排序 从上图中的地址栏中可以看到这个页面调用的是Company Controller下的Index Act ...

  8. jquery元素查找方法

    $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("div&q ...

  9. k-近邻算法理解

    左图中,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四 ...

  10. 怎样在Swift中使用CocoaPods-b

    最近关于CocoaPods有很多的议论.你可能从别的开发者那里听到过,或者在Github的目录中看到过.如果你之前从来没有用过,你可能会问,"CocoaPods到底是什么?" 它不 ...