P15338 [GCPC 2025] Karlsruhe Skyline
题目描述
摩天大楼是一种网格逻辑谜题,需要将数字 $1$ 到 $n$ 放入一个 $n \times n$ 的网格中。每个数字在每一行和每一列中必须恰好出现一次。这些数字被视为高度分别为对应数值的摩天大楼。行和列的两端可能有提示数字,这些数字描述了从该位置沿着该行或该列观察时,能看到的摩天大楼的数量,其中较高的建筑会遮挡其后任何较矮的建筑。
:::align{center}

图 K.1:样例输出 1 的图示。从左侧可以看到两座建筑(1 和 5),从右侧可以看到两座建筑(4 和 5)。
:::
在本问题中,我们只考虑摩天大楼网格中的一行,该行两端均有提示数字。请判断是否可能在这一行中放置 $1$ 到 $n$ 的摩天大楼以满足两个提示,如果可能,请给出一个有效的放置方案。
输入格式
输入包含:
- 一行,三个整数 $n$、$a$ 和 $b$($2 \leq n \leq 1000$,$1 \leq a, b \leq n$),分别表示行的长度、左侧提示数和右侧提示数。
输出格式
如果存在有效的放置方案,则输出 “yes”,后跟 $n$ 个互不相同的整数 $h_1, \dots, h_n$($1 \leq h_i \leq n$),表示从左到右的建筑高度。
如果有多个有效解,你可以输出任意一个。
如果不存在有效的放置方案,则输出 “no”。
说明/提示
翻译由 DeepSeek 完成