#HK5420. 「OOI 2018 Day 2」天文学

「OOI 2018 Day 2」天文学

题目描述

题目译自 Open Olympiad in Informatics 2018 Day2 T2 「Астрономия / Astronomy

公元 18 年,著名的天文学家菲隆·伯兰德发表了一篇论文《论天穹结构》,其中描述了他在观察星空时发现的一种惊人现象。在一个无云的夜晚,菲隆看到了 2n2n 颗星星和月亮。令人惊讶的是,这些星星可以想象成对分组,使得每对星星的中心连线都通过月亮的中心,并且所有这些连线都是不同的。菲隆仔细地将这一现象记录在星空图上,引入了坐标系,并发现所有星星和月亮的中心都位于整数坐标点上。由于菲隆认为地球和月亮是平的,星空图上的坐标系是二维的。他选择的坐标系使得包括月亮在内的所有对象的坐标绝对值不超过 10610^6。此外,任何两个对象(两颗星星或星星与月亮)都不在同一点上。

除了星空图,菲隆·伯兰德还在论文中预言,2000 年后,星星将回到相同的位置,而月亮的位置将出现一颗巨大的彗星,将摧毁地球。

公元 2018 年,你得到了菲隆·伯兰德的论文,惊恐地发现天上的星星确实与 2000 年前的位置相同!不幸的是,时间摧毁了星空图,只有星星中心对应的点保留下来,没有任何关于如何将点分组为对以使所有连线通过月亮中心的记录。更糟糕的是,月亮中心的点在图上被抹去了。为了确定彗星的来袭方向并拯救人类免于毁灭,你需要紧急恢复一个合适的月亮中心位置!

输入格式

第一行包含一个整数 nn (2n2600)(2 \leq n \leq 2600),表示天文学家在天空上看到的星星对的数量。

接下来的 2n2n 行,每行包含一对整数 xi,yix_i, y_i (106xi,yi106)(-10^6 \leq x_i, y_i \leq 10^6),表示星星中心的坐标。注意,星星的顺序是任意的,与菲隆·伯兰德如何将它们分组无关。任何两颗星星的中心不在同一点上。

输出格式

如果天文学家错了,无法将所有点分组为对,使得所有构建的直线不同且相交于一个具有整数坐标的点(且该点不同于所有星星的中心),则在唯一一行输出 No

否则,在第一行输出 Yes。在第二行输出一对整数 x,yx, y (x,y106)(|x|, |y| \leq 10^6),表示你解决方案中月亮中心的坐标。如果存在多个合适的点,可以输出其中任意一个。注意,输出的点不能与任何星星的中心重合。

2
1 1
1 3
3 1
3 3

Yes
2 2

3
4 2
6 2
2 1
2 6
4 4
6 6

Yes
2 2

2
1 1
2 2
4 4
5 5

No

2
1 1
2 1
1 2
2 2

No

在第四个样例中,月亮的中心只能位于点 (1.5,1.5)(1.5, 1.5),但该点坐标不是整数,因此无解。

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

No

在第五个样例中,无法找到一个合适的点,且该点不与任何星星中心重合。

数据范围与提示

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务 分值 附加限制 备注
11 99 n2n \leq 2
22 1010 n5n \leq 5
33 99 n25n \leq 25
44 99 n200n \leq 200
55 1010 n500n \leq 500
66 1111 n1000n \leq 1000
77 1010 n1500n \leq 1500
88 1111 n2000n \leq 2000
99 1111 n2300n \leq 2300
1010 1010