描述
一个工厂生产的产品包装在方形的数据包相同的高度h和尺寸的1 * 1,2 * 2,3 * 3,4 * 4,5 * 5,6 * 6。这些产品总是交付给客户在广场地块的同一高度h的大小的产品有6 * 6。由于费用是工厂的利益,以及客户,以尽量减少所需提供从工厂订购的产品给客户的包裹数量。一个很好的解决方案需要寻找包裹的最小数量根据订单交付给定的产品的问题,可以节省很多钱。你被要求做这样一个程序。
输入
该输入文件包含的几行中指定的命令。每行指定一个数量级。订单完全由一个空格代表先后从最小尺寸1 * 1个体大小的数据包的数量,以最大的尺寸为6 * 6分开的6个整数描述。输入文件中的末尾是由含有六个零的线表示。
产量
输出文件包含一个行中输入文件的每一行。此行包含包裹在其中输入文件的相应行的顺序可以装的最小数量。有在对应于最后的``空'线的输入文件的输出文件中没有线。
样例输入
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 N,a,b,c,d,e,f,y,x; int u[4]={0,5,3,1}; while (1){ 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=5*d+u[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; cout<<N<<endl; } return 0; }