QOJ.ac

QOJ

Límite de tiempo: 2.0 s Límite de memoria: 256 MB Puntuación total: 100

#7242. Mr.~Credo

Estadísticas

考虑二维平面 $Oxy$。平面上有 $n$ 个聚光灯。当第 $i$ 个聚光灯放置在某一点并开启时,它会照亮所有属于一个角度为 $\phi_i$ ($0^\circ < \phi_i < 360^\circ$) 的扇形区域(包括内部和边界)的点,且该扇形的顶点位于所选点处(顶点也被视为被照亮)。每个聚光灯都可以任意旋转,并可以放置在平面上的任意一点。

你和你的朋友们想要照亮整个平面,以保护某些非常重要的东西免受入侵。起初,你们尝试将所有聚光灯放在同一点,但经过几次尝试后,你们发现无论如何旋转这些聚光灯,都无法照亮平面上的每一个点。之后,你的一个朋友建议,如果以某种最优方式分散放置这些聚光灯,就有可能照亮整个平面。他甚至告诉了你们应该将聚光灯放置在哪些点,以及如何旋转它们。

凭借敏锐的数学直觉,你怀疑他是错的,整个平面仍然没有被完全照亮。为了证明他是错的,你打算找出一个半径为 1 的未被照亮的圆(即该圆内部及其边界上的所有点都不应被照亮),这代表了一个能够躲在黑暗中而不被聚光灯照到的入侵者。

请编写一个程序,给定所有聚光灯的描述,找出一个点 $(x_0, y_0)$,使得以 $(x_0, y_0)$ 为圆心、半径为 1 的圆完全不被聚光灯照亮。

输入格式

第一行包含一个整数 $n$ ($1 \le n \le 2 \cdot 10^5$),表示聚光灯的数量。

接下来的 $n$ 行包含聚光灯的描述。每个聚光灯的描述由四个整数 $x_i, y_i, \phi_i, \alpha_i$ ($-50 \le x_i, y_i \le 50, 0 < \phi_i < 1\,296\,000, 0 \le \alpha_i < 1\,296\,000$) 组成。其中 $x_i$ 和 $y_i$ 是对应聚光灯的坐标,$\phi_i$ 和 $\alpha_i$ 是以角秒为单位的角度(详见说明部分),分别表示聚光灯的张角和旋转角度。

旋转角度的定义如下:考虑以 $(x_i, y_i)$ 为起点,沿 $x$ 轴正方向的水平射线,记为 $l_0$。记 $l_\gamma$ 为射线 $l_0$ 绕点 $(x_i, y_i)$ 逆时针旋转 $\gamma$ 角后的结果。那么,聚光灯照亮的区域是射线从方向 $l_{\alpha_i}$ 逆时针旋转到方向 $l_{\alpha_i+\phi_i}$ 所扫过的所有点。

输入格式示意图。

保证如果将给定的所有聚光灯放在同一点并任意旋转,它们无法照亮整个平面。

输出格式

如果你的直觉错了,整个平面实际上被照亮了,请仅输出单词 “NO”。

否则,在第一行输出单词 “YES”,并在下一行输出两个整数 $x_0, y_0$,满足 $-10^9 \le x_0, y_0 \le 10^9$,即某个未被照亮圆的圆心坐标。保证如果存在一个未被照亮的点,则一定存在一个满足上述条件的未被照亮的圆。

样例

输入 1

4
1 2 486000 0
-1 1 324000 648000
1 0 108000 0
1 0 108000 1188000

输出 1

YES
-3 3

说明

样例测试示意图。

角秒是一种角度测量单位,记作 $''$。它等于 $1$ 度的 $\frac{1}{3600}$,即一个完整的圆等于 $1\,296\,000''$。

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.