#ATagc059d. [AGC059D] Distinct Elements on Subsegments

[AGC059D] Distinct Elements on Subsegments

题目描述

给定一个整数序列 A=(A1, A2, , AN+K1)A=(A_1,\ A_2,\ \ldots,\ A_{N+K-1})1AiN+K11 \leq A_i \leq N+K-1),对于每个 ii,定义 BiB_iAi,Ai+1,,Ai+K1A_i, A_{i+1}, \ldots, A_{i+K-1}KK 个数中不同元素的个数,得到序列 B=(B1, B2, , BN)B=(B_1,\ B_2,\ \ldots,\ B_N)

给定 B1,B2,,BNB_1, B_2, \ldots, B_N,判断是否存在一个序列 AA 能够生成该序列 BB,如果存在,请构造出任意一个满足条件的 AA

对于每个输入文件,需要解答 TT 个测试用例。

输入格式

输入从标准输入读入,格式如下:

TT
case1case_1
case2case_2
\vdots
caseTcase_T

每个测试用例如下格式:

NN KK
B1B_1 B2B_2 \ldots BNB_N

输出格式

对于每个测试用例,如果不存在满足条件的序列 AA,输出 NO

否则,输出如下格式:

YES
A1A_1 A2A_2 \ldots AN+K1A_{N+K-1}

其中 1AiN+K11 \leq A_i \leq N+K-1,且 AA 必须能够生成给定的 BB。如果有多组解,输出任意一组均可。

YESNO 的输出中字母大小写均可。

样例 1

输入

3
3 3
1 2 1
4 3
1 2 2 1
6 4
3 3 3 3 3 3

输出

NO
YES
1 1 1 2 2 2 
YES
1 2 3 1 2 3 1 2 3

说明/提示

限制条件

  • 1T51041 \leq T \leq 5 \cdot 10^4
  • 2N21052 \leq N \leq 2 \cdot 10^5
  • 2K21052 \leq K \leq 2 \cdot 10^5
  • 1BiK1 \leq B_i \leq K
  • 每个输入文件中所有 NN 的总和不超过 21052 \cdot 10^5
  • 每个输入文件中所有 KK 的总和不超过 21052 \cdot 10^5
  • 输入中的所有值均为整数。

由 ChatGPT 4.1 翻译