AT_abc033_d [ABC033D] 三角形の分類

题目描述

在二维平面上给定 $N$ 个点。第 $i$ 个点的坐标为 $(x_i,\ y_i)$。此外,任意三个点都不共线。 我们考虑从 $N$ 个点中选出 $3$ 个点,以这 $3$ 个点为顶点构成一个三角形。总共可以构成 $N\ *\ (N\ -\ 1)\ *\ (N\ -\ 2)\ /\ 6$ 个三角形。请分别求出这些三角形中锐角三角形、直角三角形和钝角三角形的个数。 其中,锐角三角形是指三个角都小于 $90^\circ$ 的三角形,直角三角形是指存在一个角等于 $90^\circ$ 的三角形,钝角三角形是指存在一个角大于 $90^\circ$ 的三角形。

输入格式

输入以如下格式从标准输入读入。 > $N$ > $x_1$ $y_1$ > $x_2$ $y_2$ > $\vdots$ > $x_N$ $y_N$ - 第 $1$ 行为一个整数 $N\ (3\leq N\leq 2,000)$,表示点的个数。 - 接下来的 $N$ 行,每行包含两个用空格分隔的整数 $x_i\ (-10,000\leq x_i\leq 10,000)$、$y_i\ (-10,000\leq y_i\leq 10,000)$,表示第 $i$ 个点的坐标。 - $N$ 个点均不相同。 - 任意 $3$ 个不同的点都不共线。

输出格式

请按顺序输出锐角三角形的个数、直角三角形的个数、钝角三角形的个数,用空格分隔,并以换行符结尾。

说明/提示

## 部分分 本题设有部分分。 - 对于 $N\leq 100$ 的数据集,答对可获得部分分 $30$ 分。 ## 样例解释 1 - 选择第 $2$、$4$、$5$ 个点,可以构成一个锐角三角形。 - 选择第 $1$、$4$、$5$ 个点,可以构成一个直角三角形。 - 选择第 $3$、$4$、$5$ 个点,可以构成一个直角三角形。 - 其余 $7$ 种选择方式,均可构成钝角三角形。 由 ChatGPT 4.1 翻译