人类学家们对某个古希腊几何学家社会发现了一些令人惊讶的事实:他们热爱聚会,正如他们热爱数学一样!事实上,多年来他们举办的聚会规模越来越大,因此他们需要抬高宴会厅的屋顶,以保持噪音水平在可接受的范围内。
我们知道,他们宴会厅的屋顶总是由恰好三根柱子的顶端支撑;这些柱子是无限细的线段,从地面垂直向上延伸。每当该社会想要抬高屋顶时,他们首先会拆除现有的屋顶。然后,他们会在一个还没有柱子的位置建造一根新柱子。最后,他们会将一个新的屋顶架在新柱子的顶端以及之前已建成的柱子中最近建造的两根柱子的顶端上。出于神秘的原因,任意三根柱子的基座从不共线,且任意四根柱子的顶端从不共面。
每个屋顶都是一个凸多边形,它是定义在支撑它的三个顶端所构成的平面上的部分。对于在支撑柱之前建造的每一根柱子 $c$,屋顶在任何一点上都不会与 $c$ 相交,并且足够大以覆盖 $c$ 上方的空间。屋顶不会接触地面。不同的屋顶不一定具有相同的形状。
在一次考古挖掘中,你发现了该社会建造的所有 $N$ 根柱子,但没有发现屋顶。你想要确定一种可能的柱子建造顺序,使其符合上述规则。一种可能的顺序是对这 $N$ 根柱子的排列,使得对于该排列中长度至少为 4 的每一个前缀,都存在一个屋顶(凸多边形),该屋顶包含该前缀中最后三根柱子的顶端,并且对于前缀中顶端位于 $(x, y, h)$ 的每一根其他柱子,该屋顶包含一个点 $(x, y, z)$,其中 $z > h$。
输入格式
输入的第一行给出测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含一个整数 $N$:柱子的数量。接下来有 $N$ 行,第 $i$ 行包含三个整数 $X_i, Y_i$ 和 $H_i$,分别表示第 $i$ 根柱子顶端的 $X$ 坐标、$Y$ 坐标和离地高度。
输出格式
对于每个测试用例,输出一行 Case #x: y1 y2 ... yN,其中 $x$ 是测试用例编号(从 1 开始),每个 $y_i$ 是 1 到 $N$ 之间的一个不同整数。这些数字代表了一种可能的柱子建造顺序,其中 $y_i$ 是第 $i$ 根建造的柱子在输入中的索引。
保证至少存在一个有效的答案。如果存在多个可能的答案,你可以输出其中任意一个。
数据范围
$1 \le T \le 100$。 $-10^6 \le X_i \le 10^6$,对于所有 $i$。 $-10^6 \le Y_i \le 10^6$,对于所有 $i$。 $1 \le H_i \le 10^6$,对于所有 $i$。 $(X_i, Y_i), (X_j, Y_j)$ 和 $(X_k, Y_k)$ 对于所有不同的 $i, j, k$ 均不共线。 $(X_i, Y_i, H_i), (X_j, Y_j, H_j), (X_k, Y_k, H_k)$ 和 $(X_l, Y_l, H_l)$ 对于所有不同的 $i, j, k, l$ 均不共面。
样例
样例输入 1
3 5 -1 0 3 1 2 4 1 -2 4 3 1 3 3 -1 2 4 1 1 1 2 2 3 2 3 4 10 11 120 4 1 1 1 2 2 3 2 3 4 10 11 12
样例输出 1
Case #1: 5 4 3 1 2 Case #2: 3 2 1 4 Case #3: 1 2 4 3
说明:以下图片展示了样例 1。