CF1045E Ancient civilizations
题目描述
在一颗新发现的星球表面(我们将其视为一个平面),探险者在不同的位置发现了两个不同文明的遗迹。他们希望进一步了解这些文明,并需要在部分遗址之间修建道路以便探索。但如往常一样,有一些限制:
1. 同一文明的任意两个遗址之间必须通过唯一的一条道路路径连通。
2. 不同文明的任意两个遗址之间不能有道路相连(探险者不希望在探索过程中混淆不同文明)。
3. 道路必须是直线线段。
4. 由于交叉点的建设成本很高,任何两条道路都不能相交(即,任意两条道路的唯一公共点只能是某个遗址的位置)。
显然,所有遗址的位置在平面上都是不同的点。探险者还发现了一个有趣的信息,或许对你有帮助——没有三个遗址共线!
请帮助探险者为他们的问题找到一个解决方案,或者报告无法实现。
输入格式
第一行,一个整数 $n$,表示发现的遗址数量,$1 \leq n \leq 10^3$。
接下来的 $n$ 行,每行包含三个整数 $x, y, c$,表示该遗址的坐标和所属文明编号,$0 \leq x, y \leq 10^4$,$c \in \{0, 1\}$。
输出格式
第一行输出需要修建的道路数量。
接下来的每一行输出一对遗址的编号($0$-基编号),表示这两个遗址之间需要修建一条道路。
如果无法满足所有限制条件,输出 “Impossible”。不要输出引号。
说明/提示
由 ChatGPT 4.1 翻译