Input
The input 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 to the biggest size . The end of the input is indicated by the line containing six zeros.
Output
The output contains one line for each line in the input. 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 corresponding to the last ``null'' line of the input.
Sample Input
0 0 4 0 0 1 7 5 1 0 0 0 0 0 0 0 0 0
Sample Output
21
#include<iostream> using namespace std; int main() { int s1,s2,s3,s4,s5,s6; int ans; while(cin>>s1>>s2>>s3>>s4>>s5>>s6&&(s1||s2||s3||s4||s5||s6)) { ans=0; ans=ans+s5+s6+s4; s1=s1-s5*11; s2=s2-s4*5; ans=ans+s3/4; s3=s3%4; if(s3!=0) ans++; if(s3==1) { s2=s2-5; s1=s1-7; } if(s3==2) { s2=s2-3; s1=s1-6; } if(s3==3) { s2=s2-1; s1=s1-5; } if(s2>0) { ans=ans+s2/9; s2=s2%9; if(s2!=0) { ans++; s1=s1-(36-4*s2); } } if(s2<0) { s1=s1+s2*4; } if(s1>0) { ans=ans+s1/36; if(s1%36!=0) ans++; } cout<<ans<<endl; } }