P16764 [GKS 2020 #E] High Buildings
题目描述
在某国,Google 有一个由 $N$ 栋办公楼组成的园区,这些楼排成一行,从左到右编号为 $1$ 到 $N$。以米为单位时,每栋楼的高度是介于 $1$ 到 $N$ 之间的整数。
Andre 和 Sule 是该园区的两名 Google 员工。午休时,他们想看看他们工作园区的天际线。因此,Andre 走到了园区的最左端(即 $1$ 号楼左侧),面向园区的最右端(即 $N$ 号楼右侧)。类似地,Sule 走到了园区的最右端,面向园区的最左端。
对 Andre 而言,一栋楼 $x$ 是可见的,当且仅当在 $x$ 左侧没有严格比 $x$ 高的楼。同样,对 Sule 而言,一栋楼 $x$ 是可见的,当且仅当在 $x$ 右侧没有严格比 $x$ 高的楼。
Andre 得知有 $A$ 栋楼对他可见,而 Sule 得知有 $B$ 栋楼对他可见。他们汇合交换信息后,还得知有 $C$ 栋楼对两人都可见。
他们想知道每栋楼的高度。他们向你提供了 $N$、$A$、$B$ 和 $C$ 的值。作为他们的朋友,你需要为每栋楼构造一个可能的高度,使得上述信息正确,或者指出不存在符合该信息的高度构造方案(因此他们中至少有一人弄错了)。
输入格式
输入的第一行给出测试用例的数量 $T$。接下来有 $T$ 个测试用例。每个测试用例由一行四个整数 $N$、$A$、$B$ 和 $C$ 组成,表示 Andre 和 Sule 提供的信息。
输出格式
对于每个测试用例,输出一行,格式为 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始)。如果不存在符合上述信息的高度方案,则 $y$ 为 `IMPOSSIBLE`;否则 $y$ 为 $N$ 个空格分隔的整数,其中第 $i$ 个整数表示第 $i$ 栋楼的高度(米),取值范围为 $1$ 到 $N$。
说明/提示
在样例 #1 中,样例输出设置的高度使得只有第 $1$ 栋楼对 Andre 可见,而第 $1$、$3$、$4$ 栋楼对 Sule 可见。因此,只有第 $1$ 栋楼对两人都可见。注意,还存在其他正确的解,例如 $4$ $3$ $1$ $2$。
在样例 #2 中,所有 $N = 4$ 栋楼对 Andre 和 Sule 都可见。因此,在这种情况下不可能出现 $C \ne N$。
在样例 #3 中,样例输出设置的高度使得第 $1$、$3$、$4$ 栋楼对 Andre 可见,第 $3$、$4$、$5$ 栋楼对 Sule 可见。因此,第 $3$ 和第 $4$ 栋楼对两人都可见。注意,还存在其他正确的解。
### 限制条件
$1 \le T \le 100$。
$1 \le C \le N$。
$C \le A \le N$。
$C \le B \le N$。
**测试集 1**
$1 \le N \le 5$。
**测试集 2**
$1 \le N \le 100$。
翻译由 DeepSeek V4 Pro 完成