Problem Statement  
You have a length x width x height box, and you want to fill it with cubes. The cubes have sides that are powers of 2 (1x1x1, 2x2x2, 4x4x4, 8x8x8, etc.). You are given a int[] cubes, the ith element of which is the number of 2^i x 2^i x 2^i cubes you have (i is a 0based index). Return the minimum number of cubes necessary to fill the box, or 1 if it is impossible to do so.  
Definition  
 
Constraints  
  length, width and height will each be between 1 and 10^6, inclusive.  
  cubes will contain between 1 and 20 elements, inclusive.  
  Each element of cubes will be between 0 and 10^6, inclusive.  
Examples  
0)  
 
1)  
 
2)  
 
3)  
 
4)  
