QOJ.ac

QOJ

حد الوقت: 10 s حد الذاكرة: 1024 MB مجموع النقاط: 17

#12081. 落球

الإحصائيات

题目描述

某种玩具由一个包含 2 列或更多列、1 行或更多行的网格组成,其中每个单元格包含一个 \ 斜坡、一个 / 斜坡,或者为空。最左侧和最右侧的列为空,底行也为空。小球被投入顶行并垂直下落,在斜坡上滑动。为了防止小球卡住,\ 斜坡单元格的左侧绝不会紧邻 / 斜坡单元格。

当一个小球被投入顶行时,它的移动遵循以下确定性规则: 位于空单元格中的小球移动到其正下方的单元格,除非它已经在底行,这种情况下它不再移动。 位于包含 \ 斜坡单元格中的小球移动到其右下方的单元格。 * 位于包含 / 斜坡单元格中的小球移动到其左下方的单元格。

为了充分展示该机制,用户在每一列中各投入一个球。小球之间互不干扰,且一个单元格中可能包含多个小球。

你的朋友有一个拥有 $C$ 列和未知行数的玩具。他们刚刚在每一列的顶行投入了一个球,并等待所有球停止移动。然后,他们统计了最终落在底行每个单元格中的球的数量,并给了你这些结果……但你认为他们可能弄错了。你能创建一个符合结果且行数尽可能少的布局吗?或者确定不存在这样的布局?

例如,如果你的朋友报告的值为 $3\ 0\ 0\ 2\ 0\ 1$,一种可能的解决方案如下。(注意,不需要使用最少数量的斜坡,也不需要每个斜坡都对球产生影响。)

.//\..
./\./.
......

以下是小球穿过该网格时所走的路径:

输入格式

第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含一个整数 $C$:你朋友的落球玩具的列数。接下来一行包含 $C$ 个整数 $B_i$。第 $i$ 个整数表示根据你朋友提供的数据,最终落在底行从左往右第 $i$ 个单元格中的球的数量。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 要么是 IMPOSSIBLE,要么是你的布局中的行数。如果 $y$ 不是 IMPOSSIBLE,则输出 $y$ 行,表示你提议的落球玩具布局,从上到下排列。使用 . 表示没有斜坡的单元格,使用 \/ 表示斜坡。布局必须遵守题目描述中的所有规则。

数据范围

$1 \le T \le 100$。 $0 \le B_i \le C$,对于所有 $i$。 所有 $B_i$ 的总和(从 $1$ 到 $C$)等于 $C$。 时间限制:每个测试集 10 秒。 内存限制:1GB。

测试集 1 (可见)

$2 \le C \le 5$。

测试集 2 (隐藏)

$2 \le C \le 100$。

样例

输入 1

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

输出 1

Case #1: 1
....
Case #2: IMPOSSIBLE
Case #3: 3
.//\..
./\./.
......

说明

注意,最后一个样例不会出现在测试集 1 中。

以下布局是样例 1 的唯一有效解。(必须至少有一行,且包含更多行会使方案使用的行数多于所需。在底行包含任何斜坡是不合法的。)

....

在样例 2 中,如果不添加斜坡,无法阻止最左侧的球落到底行,但该列不能添加斜坡。

样例 3 是题目描述末尾提到的例子。注意,以下针对样例 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.