#abc033d. [abc033_d]三角形の分類

[abc033_d]三角形の分類

问题描述

给定二维平面上的N个点。第i个点的坐标为(xi,yi)(x_i, y_i)。其中,任意3个点不共线。

考虑从N个点中选择3个点作为顶点来构造三角形。总共可以构造N×(N1)×(N2)/6N \times (N-1) \times (N-2) / 6个三角形。请计算这些三角形中,锐角三角形、直角三角形和钝角三角形的个数。


输入

输入以以下格式从标准输入中给出:

N x1 y1 x2 y2 : xN yN

  • 第1行包含一个整数N(3 ≤ N ≤ 2000),表示点的个数。
  • 第2至N行给出与点的坐标相关的信息。其中,第i行包含两个整数xix_i(-10000 ≤ xix_i ≤ 10000)和yiy_i(-10000 ≤ yiy_i ≤ 10000),以空格分隔。
  • N个点各不相同。
  • N个点中不存在任何3个点共线的情况。

部分得分

本问题设置了部分得分。

  • 对于满足N ≤ 100的数据集给出正确答案,将获得30分。

输出

按照以下顺序,以空格分隔,在一行中输出锐角三角形的个数、直角三角形的个数和钝角三角形的个数。

注意,在输出末尾加上换行符。


输入示例 1

5
1 3
2 2
3 2
4 1
4 3

输出示例 1

1 2 7
  • 选择第2、4和第5个点,可以构成一个锐角三角形。
  • 选择第1、4和第5个点,可以构成一个直角三角形。
  • 选择第3、4和第5个点,可以构成一个直角三角形。
  • 在其它7种选择中,都可以构成钝角三角形。

输入示例 2

9
2 0
1 1
3 1
1 2
5 2
0 3
4 3
2 4
4 4

输出示例 2

27 14 43