AT_agc059_d [AGC059D] Distinct Elements on Subsegments

题目描述

给定一个整数序列 $A=(A_1,\ A_2,\ \ldots,\ A_{N+K-1})$($1 \leq A_i \leq N+K-1$),对于每个 $i$,定义 $B_i$ 为 $A_i, A_{i+1}, \ldots, A_{i+K-1}$ 这 $K$ 个数中不同元素的个数,得到序列 $B=(B_1,\ B_2,\ \ldots,\ B_N)$。 给定 $B_1, B_2, \ldots, B_N$,判断是否存在一个序列 $A$ 能够生成该序列 $B$,如果存在,请构造出任意一个满足条件的 $A$。 对于每个输入文件,需要解答 $T$ 个测试用例。

输入格式

输入从标准输入读入,格式如下: > $T$ > $case_1$ > $case_2$ > $\vdots$ > $case_T$ 每个测试用例如下格式: > $N$ $K$ $B_1$ $B_2$ $\ldots$ $B_N$

输出格式

对于每个测试用例,如果不存在满足条件的序列 $A$,输出 `NO`。 否则,输出如下格式: > YES $A_1$ $A_2$ $\ldots$ $A_{N+K-1}$ 其中 $1 \leq A_i \leq N+K-1$,且 $A$ 必须能够生成给定的 $B$。如果有多组解,输出任意一组均可。 `YES` 或 `NO` 的输出中字母大小写均可。

说明/提示

### 限制条件 - $1 \leq T \leq 5 \cdot 10^4$ - $2 \leq N \leq 2 \cdot 10^5$ - $2 \leq K \leq 2 \cdot 10^5$ - $1 \leq B_i \leq K$ - 每个输入文件中所有 $N$ 的总和不超过 $2 \cdot 10^5$。 - 每个输入文件中所有 $K$ 的总和不超过 $2 \cdot 10^5$。 - 输入中的所有值均为整数。 由 ChatGPT 4.1 翻译