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}$,则认为这两条直线是同一条直线。

说明/提示

第一个样例的解如下图: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF260E/f25dd1f6e7f7e19d7007bdb9da678c4a92207eda.png) 第二个样例的解如下图: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF260E/cfb5bf22cb67c702c1b27adab1d86b1bf50d84b5.png) 第三个样例无解。 由 ChatGPT 5 翻译