Problem Statement  
Taro and Hanako are playing a game called Nisoku, which is played as follows. Initially, there is a pile of cards. Each card contains a real number between 1.5 and 10.0, inclusive. You are given a double[] cards, the ith element of which is the number written on the ith card.
Repeat the following step until there is only one card left in the pile: Remove any two cards from the pile, and add one new card to the pile. Write either a+b or a*b on the new card, where a and b are the numbers written on the two cards that were removed. Return the maximal possible number written on the final card in the pile.  
Definition  
 
Notes  
  Your return value must have an absolute or relative error less than 1e9.  
Constraints  
  cards will contain between 2 and 50 elements, inclusive.  
  Each element of cards will be between 1.5 and 10.0, inclusive.  
Examples  
0)  
 
1)  
 
2)  
 
3)  
 
4)  
