Problem Statement 
 You have just received a int[] sampleData from the laboratory. You know that the variance of this data should be varNum/varDen, where varNum and varDen are ints. Note that varNum/varDen need not be an integer. Your method will return which nonempty subset of the elements from sampleData produces a variance closest to the variance you expected. This subset may be the entire sampleData. The variance of a subset of the sampleData can be calculated via the following formula.
Let s(i) denote the ith element of the subset (assuming some method of indexing into the subset), and let n denote the size of the subset. Then mean = ( s(0) + s(1) + s(2) + ... + s(n1) )/n
varsum = (means(0))^2 + (means(1))^2 + ... + (means(n1))^2
variance = varsum/n
The subset will be returned as a int[], whose elements are the values of the subset, sorted in nondescending order. If two subsets are equally far from the expected variance, choose the one whose return value comes first lexicographically. A int[] X comes lexicographically before a int[] Y if there is a position j such that, X[i]=Y[i] for all i<j, and X[j]<Y[j]. If X is a proper prefix of Y, it occurs lexicographically before it. 

Definition 
 Class:  WhichData  Method:  bestVariance  Parameters:  int[], int, int  Returns:  int[]  Method signature:  int[] bestVariance(int[] sampleData, int varNum, int varDen)  (be sure your method is public) 




Notes 
  doubles will provide enough precision to properly solve this problem. Given two subsets, s1 and s2, the difference between variance(s1)varNum/varDen and variance(s2)varNum/varDen will be either 0, or greater than 1e9, where variance(x) is the variance of subset x. 

Constraints 
  varNum will be between 0 and 10000 inclusive. 
  varDen will be between 1 and 10000 inclusive. 
  sampleData will contain between 2 and 16 elements inclusive. 
  Each element of sampleData will be between 10000 and 10000 inclusive. 

Examples 
0)  
  Returns: { 1, 2, 3, 4, 5 }  The variance should be 40/20 = 2. The set of numbers {1,2,3,4,5} has
mean = (1+2+3+4+5)/5 = 3
varsum = 2^2 + 1^2 + 0^2 + 1^2 + 2^2 = 10
variance = 10/5 = 2



1)  
  Returns: { 1, 2, 4, 5, 8 }  

2)  
 {10000,10000,9999,9999,9998,9000}  10000  1 
 Returns: { 10000, 9998 }  

3)  
 {10000,10000,9999,9999,9998,9998,1,1,2,2}  9999  10000 
 Returns: { 10000, 9998 }  

4)  
 {500,500,500,500,500,500,500,580,
100,100,100,100,100,100,100,180}  700  1 
 Returns: { 100, 100, 100, 100, 100, 100, 100, 180 }  

5)  
 
6)  
 {2,5,8,15,14,0,2,3,0,10,3,9,6,13,4,1}  5787  170 
 Returns: { 14, 10, 3, 1, 0, 0, 2, 3, 4, 5 }  

7)  
 {14,3,1,10,5,0,13,6,11,9,5,6,3,2,0,2}  5061  225 
 Returns: { 5, 3, 2, 1, 0, 2, 5, 6, 6, 11 }  

8)  
 {0,13,15,5,5,7,6,7,8,4,12,13,14,9,3,1}  9262  197 
 Returns: { 13, 13, 12, 7, 7, 6, 3, 4, 5, 5 }  
