#L4306. 「ROIR 2022 Day1」三角形拼图

「ROIR 2022 Day1」三角形拼图

题目描述

译自 ROI Regional 2022 Day1 T3. Треугольная головоломка

这个拼图由 nn 个三角形组成。要解决这个拼图,需要从中选择四个三角形,并按照下图所示拼成一个大三角形:

这些三角形不能重叠,组合后必须形成一个完整的三角形。选出的四个三角形中,三个分别位于大三角形的三个角上,另一个位于中心。

三角形可以在桌面上自由旋转和移动,但不能翻转。

需要找到所有可以按照上述方案拼成大三角形的四个三角形的不同组合。如果两个组合中有一个三角形不同,则认为它们是不同的组合。

输入格式

第一行包含一个整数 tt,表示测试编号。

第二行包含一个整数 nn (4n30)(4 \le n \le 30),表示拼图中的三角形数量。

接下来的 nn 行中,每行描述一个三角形。每个三角形由三个顶点的坐标组成,按逆时针顺序给出。所有坐标都是整数,且绝对值不超过 10510^5。保证这些三角形不会退化成一条直线。在初始状态下,三角形可能会重叠。

输出格式

第一行输出一个整数,表示可以拼成大三角形的四个三角形组合的数量。

接下来的每一行输出一个组合。每个组合由四个三角形的编号组成,编号可以按任意顺序输出。组合的顺序也可以任意。

样例 1

输入

1
4
0 0 6 2 1 2
0 0 5 0 6 3
0 0 3 1 1 3
0 0 6 3 3 6

输出

1
1 2 3 4

在样例 11 中,给定的四个三角形可以拼成一个大三角形,并且不需要旋转这些三角形。

样例 2

输入

2
6
0 0 1 0 1 1
0 1 0 0 1 0
-1 0 0 0 0 1
1 1 0 1 1 0
-1 0 0 -1 0 0
0 0 1 1 0 1

输出

15
1 2 3 4
1 2 3 5
1 2 3 6
1 2 4 5
1 2 4 6
1 2 5 6
1 3 4 5
1 3 4 6
1 3 5 6
1 4 5 6
2 3 4 5
2 3 4 6
2 3 5 6
2 4 5 6
3 4 5 6

在样例 22 中,所有三角形都是直角三角形,且边长为 11。任意四个这样的三角形都可以拼成一个大三角形。

数据范围与提示

每个测试点独立评分,每个测试点的满分为 55 分。

测试点满足以下限制:

测试点编号 附加限制
1 样例测试点,不计分
2
3 所有三角形相同,n30n \le 30
4 每个三角形都有水平和垂直边,所有三角形等腰,n10n \le 10
5 每个三角形都有水平和垂直边,所有三角形等腰,n30n \le 30
6 每个三角形都有水平和垂直边,n10n \le 10
7 每个三角形都有水平和垂直边,n30n \le 30
8 所有三角形都是直角三角形,n10n \le 10
9 所有三角形都是直角三角形,n30n \le 30
10 对于每个可以拼成大三角形的四个三角形,保证不需要旋转三角形,n10n \le 10
11 对于每个可以拼成大三角形的四个三角形,保证不需要旋转三角形,n20n \le 20
12 对于每个可以拼成大三角形的四个三角形,保证不需要旋转三角形,n30n \le 30
13 n=10n = 10
14
15
16 n=20n = 20
17
18
19 n=30n = 30
20
21
22