P15338 [GCPC 2025] Karlsruhe Skyline

题目描述

摩天大楼是一种网格逻辑谜题,需要将数字 $1$ 到 $n$ 放入一个 $n \times n$ 的网格中。每个数字在每一行和每一列中必须恰好出现一次。这些数字被视为高度分别为对应数值的摩天大楼。行和列的两端可能有提示数字,这些数字描述了从该位置沿着该行或该列观察时,能看到的摩天大楼的数量,其中较高的建筑会遮挡其后任何较矮的建筑。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/g9yf0ccm.png) 图 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 完成