AT_abc033_d [ABC033D] 三角形の分類

Description

[problemUrl]: https://atcoder.jp/contests/abc033/tasks/abc033_d $ 2 $ 次元平面上の $ N $ 個の点が与えられます。 $ i $ 番目の点の座標は $ (x_i,\ y_i) $ です。ただし、このうちのどの $ 3 $ 点も同一直線上にありません。 $ N $ 点のうち $ 3 $ 点を選ぶことによってこの $ 3 $ 点を頂点とした三角形を作ることを考えます。三角形は全部で $ N\ *\ (N\ -\ 1)\ *\ (N\ -\ 2)\ /\ 6 $ 個できます。 これらの三角形のうち、鋭角三角形の個数、直角三角形の個数、鈍角三角形の個数を求めてください。 ただし、鋭角三角形とは、$ 3 $ つの角が全て $ 90° $ より小さい三角形で、直角三角形とは、ある $ 1 $ つの角が $ 90° $ である三角形で、 鈍角三角形とは、ある $ 1 $ つの角が $ 90° $ より大きい三角形のことをいいます。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ x_1 $ $ y_1 $ $ x_2 $ $ y_2 $ : $ x_N $ $ y_N $ - $ 1 $ 行目には、点の個数を表す整数 $ N\ (3\ ≦\ N\ ≦\ 2,000) $ が与えられる。 - $ 2 $ 行目から $ N $ 行には、点の座標に関する情報が与えられる。このうち $ i $ 行目には、整数 $ x_i\ (-10,000\ ≦\ x_i\ ≦\ 10,000) $、 $ y_i\ (-10,000\ ≦\ y_i\ ≦\ 10,000) $ が空白区切りで与えられる。 - $ N $ 個の点は全て異なる。 - $ N $ 個の点のうち、異なる $ 3 $ 点が同一直線上にあることはない。

Output Format

鋭角三角形の個数、直角三角形の個数、鈍角三角形の個数をこの順に空白区切りで $ 1 $ 行に出力せよ。 出力の末尾にも改行を入れること。

Explanation/Hint

### 部分点 この問題には部分点が設定されている。 - $ N\ ≦\ 100 $ を満たすデータセットに正解した場合、部分点として $ 30 $ 点が与えられる。 ### Sample Explanation 1 \- $ 2 $ 番目の点、$ 4 $ 番目の点、$ 5 $ 番目の点を選ぶと、鋭角三角形ができます。 - $ 1 $ 番目の点、$ 4 $ 番目の点、$ 5 $ 番目の点を選ぶと、直角三角形ができます。 - $ 3 $ 番目の点、$ 4 $ 番目の点、$ 5 $ 番目の点を選ぶと、直角三角形ができます。 - その他の $ 7 $ 通りの選び方では、全て鈍角三角形ができます。