QOJ.ac

QOJ

时间限制: 0.1 s 内存限制: 32 MB 总分: 100

#14465. 印刷电路板

统计

根据维基百科,印制电路板(PCB)用于通过从层压在非导电基板上的铜箔中蚀刻出的导电通路,来机械地支撑和电气连接电子元件。你的公司想要生产一种将使用 PCB 制造的新型电子设备。所需 PCB 的设计已部分完成,其形状为一个闭合多边形。它由编号为 $1$ 到 $N$ 的 $N$ 个节点组成。节点 $u$ 和节点 $u+1$ 由一条直线导线段连接,节点 $N$ 和节点 $1$ 由一条直线导线段连接。导线段互不相交,也就是说,对于任意一对导线段,如果它们有公共点,则该点必须是这两条线段的端点,且每个节点恰好是两条线段的端点。每个节点的位置由 $x$ 和 $y$ 坐标给出,原点 $(0,0)$ 是电路板的左下角。

你需要编写一个程序,计算电路中所有可以通过一条直线段与原点相连的节点,且该直线段与多边形除了该节点本身之外没有其他公共点。

输入格式

输入的第一行包含一个整数 $N$ ($1 \le N \le 100\,000$),表示电路的节点数。

接下来的 $N$ 行,每行包含两个整数 $x, y$ ($0 < x, y \le 1\,000\,000$),表示一个节点的 $x$ 和 $y$ 坐标。

节点编号为 $1$ 到 $N$,输入的第 $i+1$ 行包含节点 $i$ 的坐标。

输出格式

输出的第一行包含一个整数 $M$,表示可以通过一条直线段与原点相连的节点数量,使得该直线段与电路的任何导线段的唯一公共点就是该节点本身。

第二行包含这些节点的编号,按升序排列,用空格隔开。

样例

输入样例 1

11
7 6
4 4
3 2
1 3
9 9
13 4
8 1
6 4
9 5
8 3
11 5

输出样例 1

3
3 4 7

数据范围与提示

对于 $10\%$ 的测试用例,$N$ 不超过 $1000$。

如果仅输出的第一行正确,则可获得该测试点 $40\%$ 的分数。

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.