QOJ.ac

QOJ

Time Limit: 20 s Memory Limit: 1024 MB Total points: 31

#11454. 电塔

Statistics

我们的 Battlestarcraft Algorithmica 飞船正在太空中被一群穷追不舍的机器人“Pylons”追赶!我们刚刚传送到了一个新的星系,试图甩掉它们。我们希望在这里尽可能多地停留,以便争取时间规划下一步行动……但我们不想被抓住!

这个星系是一个 $R$ 行 $C$ 列的平面网格;行从上到下编号为 $1$ 到 $R$,列从左到右编号为 $1$ 到 $C$。我们可以选择起始单元格,并且必须不断在单元格之间跳跃,直到访问过星系中的每个单元格恰好一次。也就是说,我们不能重复访问任何单元格,包括起始单元格。

我们不想让 Pylons 太容易猜到我们的下一步去向。每次从当前单元格跳跃时,我们必须选择一个与当前单元格不在同一行、同一列或同一对角线上的目标单元格。设 $(i, j)$ 表示第 $i$ 行第 $j$ 列的单元格;那么从当前单元格 $(r, c)$ 到目标单元格 $(r', c')$ 的跳跃是无效的,当且仅当以下任一条件成立:

  • $r = r'$
  • $c = c'$
  • $r - c = r' - c'$
  • $r + c = r' + c'$

你能帮我们找到一种访问所有 $R \times C$ 个单元格的顺序,使得序列中任意一对连续单元格之间的移动都是有效的吗?或者我们根本无法从 Pylons 手中逃脱?

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例包含一行,包含两个整数 $R$ 和 $C$:该星系的行数和列数。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $y$ 是一个大写字母字符串:POSSIBLEIMPOSSIBLE,取决于是否可能满足题目描述中的条件。如果可能,接着输出 $R \times C$ 行。这些行中的第 $i$ 行表示你将访问的第 $i$ 个单元格(从 $1$ 开始计数),应包含两个整数 $r_i$ 和 $c_i$:该单元格的行号和列号。注意,这些行中的第一行代表你选择的起始单元格。

数据范围

每个测试集的时限:20 秒。 内存限制:1GB。

测试集 1 (可见)

$T = 16$。 $2 \le R \le 5$。 $2 \le C \le 5$。

测试集 2 (隐藏)

$1 \le T \le 100$。 $2 \le R \le 20$。 $2 \le C \le 20$。

样例

样例输入 1

2
2 2
2 5

样例输出 1

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

说明

在样例 1 中,无论我们选择哪个起始单元格,都没有地方可以跳跃,因为所有剩余的单元格都与我们的起始单元格共享同一行、同一列或同一对角线。

在样例 2 中,我们选择了第 2 行第 3 列的单元格作为起始单元格。请注意,我们的最后一个单元格与起始单元格共享同一行、同一列或同一对角线是可以的。下图显示了访问单元格的顺序:

2 4 6 10 8
7 9 1 3 5

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.