Problem Statement  
We have a collection of jobs to run on k processors. Each job requires a certain amount of
processor time, but is migratable and preemptible  it can be started on one
processor, suspended, continued on another processor, etc., as long as the
total time it gets on processors is sufficient.
How long can we keep all k processors busy? Given k and int[] need (the processor time needed by each job), return the maximum possible time we can keep all k processors busy with optimal scheduling.  
Definition  
 
Notes  
  A return value with either an absolute or relative error of less than 1.0E9 is considered correct.  
Constraints  
  k will be between 1 and 50, inclusive.  
  need will contain between 1 and 50 elements, inclusive.  
  Each element of need will be between 1 and 1,000,000, inclusive.  
Examples  
0)  
 
1)  
 
2)  
