QOJ.ac

QOJ

Limite de temps : 10 s - 45 s Limite de mémoire : 1024 MB Points totaux : 28

#12487. 拯救果冻

Statistiques

Jolly 先生教孩子们踢足球,孩子们编号为 $1$ 到 $N$。他习惯在比赛场地留下糖果,每个孩子一个。比赛结束后,每个孩子都可以拿走并吃掉一颗糖果作为奖励。

孩子们比赛后很累,所以每个孩子都想拿走离他们最近的糖果(使用欧几里得距离)。这可能会导致争执——如果同一颗糖果离两个或更多的孩子最近。为了避免这种情况,比赛结束后,所有孩子都停在原地,Jolly 先生一个接一个地叫他们的名字。当一个孩子的名字被叫到时,他们会拿走离他们最近的糖果(当然是从还没被拿走的糖果中选)。如果两颗或更多的糖果距离相等且都是最近的,Jolly 先生可以决定孩子拿走哪一颗。

这套方法对 Jolly 先生来说一直很有效,但今天灾难降临了!在摆放糖果时,Jolly 先生不小心放下了他打算在所有孩子回家后自己吃的蓝莓果冻。所以现在场上有 $N$ 个孩子和 $N+1$ 颗糖果。糖果编号为 $1$ 到 $N+1$,其中 $1$ 号糖果是 Jolly 先生的蓝莓果冻。Jolly 先生是否可以通过按某种顺序叫出孩子的名字,使得蓝莓果冻成为最后剩下的一颗糖果?

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含一个整数 $N$,表示场上的孩子数量。接下来的 $N$ 行描述了孩子们的位置。每行包含两个整数 $X_i$ 和 $Y_i$,表示第 $i$ 个孩子在比赛结束后的位置。然后是 $N+1$ 行,描述了比赛结束后糖果的位置,其中第一颗糖果是 Jolly 先生的蓝莓果冻。每行包含两个整数 $X_j$ 和 $Y_j$,表示第 $j$ 颗糖果的位置。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 $1$ 开始),如果 Jolly 先生无法通过选择孩子(以及在距离相等时决定拿哪颗糖果)来让他的蓝莓果冻不被吃掉,则 $y$ 为 IMPOSSIBLE。否则,如果 Jolly 先生可以保住他的蓝莓果冻,$y$ 为 POSSIBLE。如果 Jolly 先生可以保住他的果冻,则额外输出 $N$ 行,表示孩子们去拿糖果的顺序以及他们将挑选的糖果。第 $i$ 行应包含两个整数 $A_i$ 和 $B_i$,表示第 $i$ 个去拿糖果的孩子是 $A_i$,他将挑选第 $B_i$ 颗糖果。当孩子 $A_i$ 去挑选糖果时,糖果 $B_i$ 必须是离孩子 $A_i$ 最近(或距离相等)的糖果。

数据范围

$1 \le T \le 100$ $-10^9 \le X_i \le 10^9$ $-10^9 \le Y_i \le 10^9$ $-10^9 \le X_j \le 10^9$ $-10^9 \le Y_j \le 10^9$ $1 \le N \le 1000$

样例

样例输入 1

4
2
-3 0
-1 0
3 0
-2 -1
-2 1
1
0 0
1 1
2 2
3
10 0
-10 0
0 0
0 5
-1 0
5 0
0 -5
2
3 4
3 4
5 7
3 4
5 7

样例输出 1

Case #1: POSSIBLE
2 2
1 3
Case #2: IMPOSSIBLE
Case #3: POSSIBLE
3 2
2 4
1 3
Case #4: POSSIBLE
1 2
2 3

说明

样例 1 如图所示。请注意,每个孩子到两颗非蓝莓果冻的距离相等。在我们的解法中,Jolly 先生将第二颗糖果分配给第二个孩子,将第三颗糖果分配给第一个孩子,从而成功地为自己留下了第一颗糖果(蓝莓果冻)。

在样例 2 中,唯一的孩子离蓝莓果冻比离另一颗糖果更近,因此 Jolly 先生无法阻止他珍贵的蓝莓果冻被吃掉。

在样例 3 中,我们展示了多种解法中的一种;实际上可以按任何顺序叫出孩子。

在样例 4 中,请注意孩子们可能处于相同位置,糖果可能处于相同位置,孩子和糖果也可能处于相同位置。

Figure 1. 样例 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.