CF260E Dividing Kingdom
题目描述
有一个叫 Flatland 的国家,是一个无限大的二维平面。Flatland 有 $n$ 个城市,每个城市对应平面上的一个点。
Flatland 由国王 Circle IV 统治,他有 9 个儿子。国王希望给每个儿子分一块 Flatland 进行管理。为此,他准备画四条不同的直线,其中两条与 $Ox$ 轴平行,另外两条与 $Oy$ 轴平行,且这四条直线都不能经过任何一个城市。这样,Flatland 会被分为 9 个部分,每个儿子能分到恰好一个部分。Circle IV 考虑了儿子们的忠诚度,并决定第 $i$ 个儿子应获得包含恰好 $a_i$ 个城市的区域。
请你帮助国王找到这样四条直线,使得将 Flatland 分为 9 部分后,每位儿子能分到包含恰好 $a_i$ 个城市的区域。
输入格式
第一行包含一个整数 $n\ (9\leq n\leq 10^5)$,表示 Flatland 的城市数量。接下来的 $n$ 行每行包含两个用空格分隔的整数 $x_i, y_i\ (-10^9\leq x_i, y_i\leq 10^9)$,表示第 $i$ 个城市的坐标。任意两个城市不会处于同一点。最后一行包含 9 个用空格分隔的整数 $a_1,a_2,\dots,a_9$,每个表示相应区域要包含的城市数。
输出格式
如果无解,输出一个整数 $-1$。
否则,第一行输出两个不同的实数,表示平行于 $Oy$ 轴的直线的横坐标 $x_1,x_2$。第二行输出两个不同的实数,表示平行于 $Ox$ 轴的直线的纵坐标 $y_1,y_2$。如果有多种解,输出任意一种均可。
在检查答案时,如果某个城市到某条直线的距离不超过 $10^{-6}$,则认为该城市在这条直线上;如果两条直线之间的距离不超过 $10^{-6}$,则认为这两条直线是同一条直线。
说明/提示
第一个样例的解如下图:

第二个样例的解如下图:

第三个样例无解。
由 ChatGPT 5 翻译