QOJ.ac

QOJ

Time Limit: 7.0 s Memory Limit: 512 MB Total points: 100

#10172. 几何爱好者

Statistics

Altair 像往常一样在平面上玩点。在某个时刻,他发现了一个可以和你一起玩的新游戏。

他在二维平面上制作了一个有 $k$ 条边的凸多边形。这个多边形有一个非常好的性质:没有任意两条边是平行的。然后,他将多边形的每一条边延长为直线,并求出了每一对直线之间的交点。

现在他把得到的这些点交给你。你需要找出最初的多边形。

输入格式

第一行包含一个整数 $n$ ($1 \le n \le 200$):点的数量。

接下来的 $n$ 行,每行包含四个整数 $p_x, q_x, p_y, q_y$ ($-10^6 \le p_x, p_y \le 10^6, 1 \le q_x, q_y \le 10^6$):第 $i$ 个点的坐标。$X$ 坐标等于 $p_x/q_x$,$Y$ 坐标等于 $p_y/q_y$。保证 $p_x$ 和 $q_x$ 互质,$p_y$ 和 $q_y$ 互质。

保证该多边形可以由给定的点唯一确定。

输出格式

第一行输出一个整数 $k$:多边形的边数。

你可以以任意顺序输出多边形的顶点。

接下来的 $k$ 行,每行包含四个整数 $p_x, q_x, p_y, q_y$ ($-10^6 \le p_x, p_y \le 10^6, 1 \le q_x, q_y \le 10^6$):多边形顶点的坐标。$X$ 坐标等于 $p_x/q_x$,$Y$ 坐标等于 $p_y/q_y$。$p_x$ 和 $q_x$ 必须互质,$p_y$ 和 $q_y$ 必须互质。

样例

输入 1

6
1 1 2 1
12 5 24 5
0 1 0 1
3 1 3 1
-3 1 0 1
4 1 0 1

输出 1

4
0 1 0 1
1 1 2 1
3 1 3 1
4 1 0 1

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.