#agc059d. [agc059_d]Distinct Elements on Subsegments

[agc059_d]Distinct Elements on Subsegments

题目描述

对于一个整数数组 A=(A1,A2,ldots,AN+K1)A=(A_1, A_2, \\ldots, A_{N + K-1}) (1leqAileqN+K11 \\leq A_i \\leq N+K-1),我们构造一个数组 B=(B1,B2,ldots,BN)B=(B_1, B_2, \\ldots, B_N),其中 BiB_iAi,Ai+1,ldots,Ai+K1A_i,A_{i+1},\\ldots,A_{i+K-1} 中不同元素的个数。

给定 B1,B2,ldots,BNB_1, B_2, \\ldots, B_N,判断是否存在一个数组 AA 能够产生这样的数组 BB,如果存在则构造出一个满足条件的数组。

解决每个输入文件中的 TT 个测试用例。

约束条件

  • 1leTle5cdot1041 \\le T \\le 5 \\cdot 10^4
  • 2leNle2cdot1052 \\le N \\le 2 \\cdot 10^5
  • 2leKle2cdot1052 \\le K \\le 2 \\cdot 10^5
  • 1leBileK1 \\le B_i \\le K
  • 同一输入文件中的 NN 的总和不超过 2cdot1052\\cdot 10^5
  • 同一输入文件中的 KK 的总和不超过 2cdot1052\\cdot 10^5
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

TT case1case_1 case2case_2 vdots\\vdots caseTcase_T

每个测试用例的格式如下:

NN KK B1B_1 B2B_2 ldots\\ldots BNB_N

输出

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

否则,按照以下格式输出答案:

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

这里,必须满足 1leqAileqN+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

样例输出 1

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