QOJ.ac

QOJ

시간 제한: 0.5 s 메모리 제한: 256 MB 총점: 100

#15280. 分界线

통계

长期以来,Bytopia 岛一直由公正的国王 Byteasar 统治。但在国王突然去世后,他的两个双胞胎儿子——Biteon 和 Byteon——无法就谁继承王位达成一致。因此,他们决定将岛屿划分为两个省份,分别独立统治。

在矩形地图上,Byteotia 的形状是一个拥有 $N$ 个顶点的多边形。多边形的每一条边都平行于地图的边界,且任意两条相邻的边都互相垂直。除了相邻边的公共端点外,多边形的任何边都不与其他边相交或接触。

Biteon 和 Byteon 希望使用一条完全位于多边形内部且平行于地图边界的线段,将该多边形划分为两个全等的多边形。(如果一个多边形可以通过反射、旋转和平移的组合变换为另一个多边形,则称这两个多边形是全等的。)多边形顶点以及划分线段端点的坐标均为整数。

国王的儿子们请求你验证这样的划分是否可行。

任务

给定岛屿的形状,确定是否可以用一条水平或垂直的线段将其划分为两个全等的部分。如果可以,找到这样的一条线段。

输入格式

输入的第一行包含一个整数 $N$,表示顶点的数量。接下来的 $N$ 行中,第 $i$ 行包含一对整数 $X_i$ 和 $Y_i$($0 \le X_i, Y_i \le 10^9$),表示第 $i$ 个顶点的坐标。

顶点是按顺序给出的,即线段 $(X_1, Y_1) - (X_2, Y_2)$、$(X_2, Y_2) - (X_3, Y_3)$、$\dots$、$(X_{N-1}, Y_{N-1}) - (X_N, Y_N)$ 和 $(X_N, Y_N) - (X_1, Y_1)$ 均为多边形的边。此外,任意两条相邻的线段都互相垂直。

输出格式

你的程序应该输出单行。如果可以使用端点为 $(x_1, y_1)$ 和 $(x_2, y_2)$ 的水平或垂直线段将岛屿划分为全等的两部分,则输出 $4$ 个由空格隔开的整数 $x_1, y_1, x_2$ 和 $y_2$。必须满足 $x_1 = x_2$ 或 $y_1 = y_2$。该线段必须完全包含在多边形内部,且只有其端点可以接触多边形的边界。

如果找不到合适的划分,输出单个单词 NO

样例

输入样例 1

10
0 0
1 0
1 1
3 1
3 5
2 5
2 3
1 3
1 2
0 2

输出样例 1

1 2 3 2

说明 1

注意 3 2 1 2 也是一个合法解。

输入样例 2

6
0 0
1 0
1 1
2 1
2 2
0 2

输出样例 2

NO

说明 2

在这种情况下,无法将岛屿划分为两个全等的部分。

子任务

  • 子任务 1(12 分):$4 \le N \le 100\,000$。任何划分多边形的水平或垂直直线都恰好将其划分为两个部分。
  • 子任务 2(15 分):$4 \le N \le 200$。
  • 子任务 3(23 分):$4 \le N \le 2\,000$。
  • 子任务 4(50 分):$4 \le N \le 100\,000$。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.