JOI 和 IOI 是好朋友。有一天,JOI 和 IOI 决定在山上的观景台进行天文观测。
在观景台上,可以观测到 $N$ 颗星星。每颗星星都有一个从 $1$ 到 $N$ 的编号,并且每颗星星的颜色为红色、蓝色或黄色中的一种。
在观景台上观测到的星星可以用坐标平面上的点来表示。在这个坐标平面上,星 $i$ ($1 \le i \le N$) 对应的点为 $P_i(X_i, Y_i)$。坐标平面上的点 $P_1, \dots, P_N$ 两两不同。此外,点 $P_1, \dots, P_N$ 中任意三点都不共线。
JOI 和 IOI 决定制作一个名为“JOIOI 座”的星座。首先,两人考虑使用连接红色、蓝色、黄色三颗星星所构成的三角形。这样的三角形被称为“好三角形”。
两人决定将满足以下条件的两个好三角形的组合(不计顺序)作为 JOIOI 座的候选:
- 两个好三角形(包括三角形的边界和内部)没有公共点。也就是说,两个好三角形不会重叠,且其中一个不会包含在另一个内部。
JOI 和 IOI 决定计算有多少种可能的 JOIOI 座候选。注意,即使构成 JOIOI 座候选的 6 颗星星相同,如果连接成好三角形的方式不同,它们也被视为不同的候选。
任务
给定在观景台上观测到的星星信息,编写一个程序,输出 JOIOI 座候选的总数。
输入格式
从标准输入读取以下数据:
- 第 $1$ 行包含一个整数 $N$,表示在观景台上观测到的星星数量。
- 接下来的 $N$ 行中的第 $i$ 行 ($1 \le i \le N$) 包含三个整数 $X_i, Y_i, C_i$,以空格分隔。这表示星 $i$ 的坐标为 $P_i(X_i, Y_i)$,且 $C_i$ 表示星 $i$ 的颜色。星 $i$ 的颜色为:若 $C_i$ 为 $0$ 则为红色,若为 $1$ 则为蓝色,若为 $2$ 则为黄色。
输出格式
将 JOIOI 座候选的总数作为整数输出到标准输出,占一行。
数据范围
所有输入数据满足以下条件:
- $6 \le N \le 3000$
- $-100\,000 \le X_i \le 100\,000$
- $-100\,000 \le Y_i \le 100\,000$
- $0 \le C_i \le 2$
- 每种颜色的星星至少存在一颗。
- $P_i \neq P_j$ ($1 \le i < j \le N$)
- $P_i, P_j, P_k$ 不共线 ($1 \le i < j < k \le N$)
子任务
子任务 1 (15 点)
- $N \le 30$
子任务 2 (40 点)
- $N \le 300$
子任务 3 (45 点)
- 无额外限制
样例
输入格式 1
7 0 0 0 2 0 1 1 2 2 -2 1 0 -2 -3 0 0 -2 1 2 -2 2
输出格式 1
4
输入格式 2
8 16 0 0 17 0 0 0 7 2 0 -7 2 -1 -1 1 -1 1 2 -6 4 1 -6 -4 1
输出格式 2
12
输入格式 3
21 1 20 0 4 20 0 0 22 0 5 22 0 6 25 0 8 25 0 4 26 0 11 11 1 7 12 1 14 13 1 8 15 1 15 16 1 11 17 1 18 0 2 13 2 2 16 2 2 19 4 2 18 6 2 21 8 2 24 8 2 19 10 2
输出格式 3
7748