atcoder#AGC059D. [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}) (1  Ai  N+K1 1\ \leq\ A_i\ \leq\ N+K-1 ) に対して、Bi B_i Ai,Ai+1,,Ai+K1 A_i,A_{i+1},\ldots,A_{i+K-1} の中の相異なる要素の個数として、列 B=(B1, B2, , BN) B=(B_1,\ B_2,\ \ldots,\ B_N) を作ります。

B1, B2, , BN B_1,\ B_2,\ \ldots,\ B_N が与えられます。この列 B B を生成し得た列 A A が存在するか判定し、存在する場合はそのような列 A A を一つ構成してください。

各入力ファイルについて、T T 個のテストケースを解いてください。

输入格式

入力は標準入力から以下の形式で与えられる。

T T case1 case_1 case2 case_2 \vdots caseT case_T

各ケースは以下の形式である。

N N K K B1 B_1 B2 B_2 \ldots BN B_N

输出格式

各テストケースについて、題意を満たす列 A A が存在しなければ、NO と出力せよ。

そうでなければ、答えを次の形式で出力せよ。

YES A1 A_1 A2 A_2 \ldots AN+K1 A_{N+K-1}

ここで、1  Ai  N+K1 1\ \leq\ A_i\ \leq\ N+K-1 でなければならず、A A B B を生成するものでなければならない。 複数の解が存在する場合は、そのいずれも認められる。

YES または NO の出力において、各文字は英大文字・小文字のいずれでもよい。

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

提示

制約

  • 1  T  5  104 1\ \le\ T\ \le\ 5\ \cdot\ 10^4
  • 2  N  2  105 2\ \le\ N\ \le\ 2\ \cdot\ 10^5
  • 2  K  2  105 2\ \le\ K\ \le\ 2\ \cdot\ 10^5
  • 1  Bi  K 1\ \le\ B_i\ \le\ K
  • 各入力ファイル内の N N の総和は 2 105 2\cdot\ 10^5 を超えない。
  • 各入力ファイル内の K K の総和は 2 105 2\cdot\ 10^5 を超えない。
  • 入力中のすべての値は整数である。