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 翻译