QOJ.ac

QOJ

Time Limit: 9 s Memory Limit: 256 MB Total points: 100

#1406. 星座 2

Statistics

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

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.