QOJ.ac

QOJ

実行時間制限: 1.0 s メモリ制限: 64 MB 満点: 100 ハック可能 ✓

#9462. 最安全的建筑物

統計

PUBG 是一款多人在线大逃杀电子游戏。在游戏中,最多一百名玩家跳伞降落到一个岛屿上,搜寻武器和装备以击杀他人,同时避免自己被杀。BaoBao 是该游戏的忠实粉丝,但这一次他在选择最安全的建筑物时遇到了一些困难。

岛上有 $n$ 座建筑物,我们将这些建筑物视为二维平面上的点。在每一轮开始时,岛上会生成一个圆形的初始安全区,其圆心位于 $(0, 0)$,半径为 $R$。一段时间后,安全区会缩小为一个半径为 $r$ ($r \le R$) 的随机圆。新的安全区完全包含在原始安全区内(可能与原始安全区相切),且新安全区的圆心在原始安全区内均匀分布。

被新安全区覆盖的建筑物被称为安全建筑物。给定安全区的半径以及建筑物的位置,BaoBao 想要找到所有成为安全建筑物概率最大的建筑物。

输入格式

输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。对于每组测试数据:

第一行包含三个整数 $n$ ($1 \le n \le 100$)、$R$ 和 $r$ ($1 \le r \le R \le 10^4$),分别表示建筑物的数量以及两个安全圆的半径。

接下来的 $n$ 行,每行包含两个整数 $x_i$ 和 $y_i$ ($-10^4 \le x_i, y_i \le 10^4$),表示建筑物的坐标。这里我们假设原始安全圆的圆心位于 $(0, 0)$,且所有建筑物都在原始圆内。

保证所有测试数据的 $n$ 之和不超过 $5000$。

输出格式

对于每组测试数据,输出两行。

第一行包含一个整数 $m$,表示成为安全建筑物概率最高的建筑物的数量。

第二行包含 $m$ 个整数,按升序排列,表示最安全建筑物的索引(从 1 开始计数)。

请不要在每行末尾输出多余的空格。

样例

样例输入 1

2
3 10 5
3 4
3 5
3 6
3 10 4
-7 -6
4 5
5 4

样例输出 1

1
1
2
2 3

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.