Public Judge

pjudge

Time Limit: 2 s Memory Limit: 2048 MB Total points: 100
[+7]
Statistics

平面上有 n 个青色点 C1,,Cnn 个兰色点 B1,B2,,Bn。你的任务是:

  1. 找到一个位置,放置一个白色点 W
  2. 将白色点、青色点、兰色点配对成 n 个三角形,满足每个青色点和兰色点恰好在一个三角形中。
    • 我们假设对每个 1in,对应的三角形为 WCiBpi,这样 p 可被视为一个 1n 的排列。
  3. CiWBpi 不能是一个锐角。即,CiWBpiπ/2

构造任意一个合法方案。可以证明,解总是存在。

输入格式

每个测试点中包含多组测试数据。

输入的第一行包含一个整数 T,表示数据组数。对于每组数据:

输入的第一行包含一个整数 n

接下来 n 行,每行两个整数 xy,描述点 Ci 的坐标。

接下来 n 行,每行两个整数 xy,描述点 Bi 的坐标。

输入数据保证所有给定的 2n 个点互不相同。

输出格式

对于每组数据:

输出的第一行包含两个实数 xW,yW,表示你构造的点 W 的坐标。你需要保证 109xW,yW109

接下来一行,输出 n 个整数 p1,p2,,pn,表示你构造的排列 p

如果有多种合法的解,你可以输出任意一种。

样例数据

样例输入

1
6
-6 10
-9 7
-7 -7
6 6
3 -6
2 -7
8 10
7 7
9 7
-9 9
5 5
-1 1

样例输出

-1.230077554196 2.883883476483
3 5 1 6 4 2

如何测试你的输出

首先,在本题中,我们允许出现点重合的情况。即,虽然我们给定的 2n 个点互不相同,但我们允许你构造的点 W 与任意一个给定的点位于相同的位置。

对于 CiWBpi,如果出现了 Ci=WBpi=W 的情况,我们会认为该角为一个恰好 180 度的平角。

为了避免可能的浮点误差,我们会采用以下方式检查你的输出是否合法:

  • ε=106
  • 对每个 1in
    • r=|CiW|2+|BpiW|2d=|CiBpi|2
    • 我们会检查 rmax 是否成立。即,在允许有至多 10^{-6} 的绝对或相对误差的情况下 r \leq d 是否成立。

子任务

对于所有数据,保证 1 \leq n \leq 2 \times 10^51 \leq \sum n \leq 2 \times 10^5-10^6 \leq x,y \leq 10^6

请注意,子任务的限制中,并没有包含对 \sum n 的限制。在所有子任务中都可能会出现 \sum n 达到 2 \times 10^5 级别的数据。

子任务一(6 分)

n = 1

子任务二(8 分)

n \leq 2

子任务三(8 分)

n \leq 3

子任务四(14 分)

n \leq 16

子任务五(25 分)

n \leq 100

子任务六(23 分)

n \leq 2\,000

子任务七(16 分)

没有额外的限制。