## Problem Definition

Details about this problem is available here. Required Background Topic: Cyclic quadrilateral.

## Solution

Given that the length of the sides are `{a,b,c,d}`

, the *Maximal Quadrilateral Area* is given by the following equation:

where **semiperimeter** `s`

can be defined as follows.

let getMaxQuadrilateralArea (a,b,c,d) = | |

let s = 0.50 *(a+b+c+d) | |

System.Math.Sqrt((s-a)*(s-b)*(s-c)*(s-d)) | |

let solveSpoj2716() = | |

let parseLine() = | |

let l = System.Console.ReadLine().Split() | |

(l.[0]|>float,l.[1]|>float,l.[2]|>float,l.[3]|>float) | |

let rec runTests currentTest maxAvailableTests = | |

if currentTest < maxAvailableTests then | |

parseLine() | |

|> getMaxQuadrilateralArea | |

|> printfn "%f" | |

runTests (currentTest+1) maxAvailableTests | |

in | |

match System.Console.ReadLine() |> System.Int32.TryParse with | |

| (true, i) when i > 0 -> runTests 0 i | |

| _ -> () | |

solveSpoj2716() |