P10088 [ROIR 2022] n 巧板 (Day 1)

题目背景

翻译自 [ROIR 2022 D1T3](https://neerc.ifmo.ru/school/archive/2021-2022/ru-olymp-regional-2022-day1.pdf)。 有一个拼图由 $n$ 个三角形组成。要成功解出这个拼图,需要从中选择四个三角形,并按以下规则组合成一个大三角形: ![](https://cdn.luogu.com.cn/upload/image_hosting/texrth5u.png) 这些三角形不能相交,它们的组合必须形成一个三角形。选择的四个三角形中恰好有三个三角形位于角落,另一个三角形位于中心。 三角形放置在桌上,可以自由旋转和移动,但**不能翻转**。

题目描述

需要找到所有可以按照指定规则组合成大三角形的四个不同三角形的集合。如果存在一个三角形属于其中一个集合但不属于另一个集合,则认为两个集合是不同的。

输入格式

第一行包含一个整数 $t$,表示当前测试点的编号。 第二行包含一个整数 $n$,表示拼图中的三角形数量($4 \le n \le 30$)。 接下来的 $n$ 行,每行输入六个数,表示一个三角形三个顶点的坐标,按逆时针顺序给出。所有坐标都是整数,且不超过 $10^5$。保证三角形不会退化为直线段。初始位置的三角形可能相交。

输出格式

第一行输出一个整数,表示按照指定规则可以组合成大三角形的四个三角形的集合数量。 接下来的行输出这些集合。每个集合由其中包含的三角形的编号组成。集合内部的三角形可以以任何顺序输出。集合的输出顺序也是任意的。

说明/提示

本题分 $22$ 个测试点,前两个测试点为样例,通过不得分,后 $20$ 个测试点每个 $5$ 分。 | 测试点编号 | 特殊性质 | | :----------: | :----------: | | $1$ | 输入数据即样例 $1$ | | $2$ | 输入数据即样例 $2$ | | $3$ | 所有三角形全等,$n\le30$ | | $4$ | 所有三角形都有一条水平的边和一条垂直的边且它们都是等腰三角形,$n\le10$ | | $5$ | 所有三角形都有一条水平的边和一条垂直的边且它们都是等腰三角形,$n\le30$ | | $6$ | 所有三角形都有一条水平的边和一条垂直的边且 $n\le10$ | | $7$ | 所有三角形都有一条水平的边和一条垂直的边且 $n\le30$ | | $8$ | 所有三角形都是直角三角形且 $n\le10$ | | $9$ | 所有三角形都是直角三角形且 $n\le30$ | | $10$ | 所有能拼成大三角形的四个小三角形均不用旋转即可拼成且 $n\le10$ | | $11$ | 所有能拼成大三角形的四个小三角形均不用旋转即可拼成且 $n\le20$ | | $12$ | 所有能拼成大三角形的四个小三角形均不用旋转即可拼成且 $n\le30$ | | $13$ | $n=10$ | | $14$ | $n=10$| | $15$ | $n=10$ | | $16$ | $n=20$ | | $17$ | $n=20$ | | $18$ | $n=20$ | | $19$ | $n=30$ | | $20$ | $n=30$ | | $21$ | $n=30$ | | $22$ | $n=30$ |