AT_kupc2018_l 凸包が映し出される平面
Description
[problemUrl]: https://atcoder.jp/contests/kupc2018/tasks/kupc2018_l
$ 3 $ 次元空間上に $ N $ 個の点があり、$ i $ 番目の点の座標は $ (x_i,\ y_i,\ z_i) $ です。
まず、あなたは長さが $ 1 $ の $ 3 $ 次元ベクトル $ v $ を自由に選びます。
次に、原点を通り $ v $ に垂直な平面を $ F $ とします。
各 $ (x_i,\ y_i,\ z_i) $ から $ F $ への垂線の足を $ p_i $ とします。
平面 $ F $ 上で頂点 $ p_1,\ p_2,\ ...,\ p_N $ の凸包を作り、その面積を $ S $ とします。
面積 $ S $ の最大値を求め、さらに、$ S $ を最大にするようなベクトル $ v $ の選び方が何通りあるかを $ 10^9\ +\ 7 $ で割り、その余りを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ x_1 $ $ y_1 $ $ z_1 $ $ x_2 $ $ y_2 $ $ z_2 $ $ : $ $ x_N $ $ y_N $ $ z_N $
Output Format
面積 $ S $ の最大値を出力せよ。
続いて、$ S $ を最大にするようなベクトル $ v $ の選び方が何通りあるかを $ 10^9\ +\ 7 $ で割り、その余りを出力せよ。
なお、面積 $ S $ の最大値については、絶対誤差または相対誤差が $ 10^{−8} $ 未満であれば正解として扱われる。
Explanation/Hint
### 制約
- 入力は全て整数である。
- $ 4\ \leq\ N\ \leq\ 60 $
- $ 0\ \leq\ x_i,\ y_i,\ z_i\ \leq\ 1,000 $
- 与えられる点の座標は全て異なる。
- 全ての点が同一面上に存在することはない。
- 面積が最大となるような $ v $ の選び方は高々有限通りである。
### Sample Explanation 1
$ v\ =\ (1\ /\ \sqrt{3},\ 1\ /\ \sqrt{3},\ 1\ /\ \sqrt{3}) $ とすると、各頂点から $ F $ への垂線の足の凸包は一辺 $ \sqrt{2} $ の正三角形となり、このときの面積 $ \sqrt{3}\ /\ 2 $ が最大となります。 $ v\ =\ (-1\ /\ \sqrt{3},\ -1\ /\ \sqrt{3},\ -1\ /\ \sqrt{3}) $ としたときも同様に、$ F $ 上の凸包の面積が $ \sqrt{3}\ /\ 2 $ となります。 この面積となる $ v $ の選び方は、これら $ 2 $ 通りのみです。