AT_agc059_d [AGC059D] Distinct Elements on Subsegments
Description
[problemUrl]: https://atcoder.jp/contests/agc059/tasks/agc059_d
整数列 $ A=(A_1,\ A_2,\ \ldots,\ A_{N\ +\ K-1}) $ ($ 1\ \leq\ A_i\ \leq\ N+K-1 $) に対して、$ B_i $ を $ A_i,A_{i+1},\ldots,A_{i+K-1} $ の中の相異なる要素の個数として、列 $ B=(B_1,\ B_2,\ \ldots,\ B_N) $ を作ります。
$ B_1,\ B_2,\ \ldots,\ B_N $ が与えられます。この列 $ B $ を生成し得た列 $ A $ が存在するか判定し、存在する場合はそのような列 $ A $ を一つ構成してください。
各入力ファイルについて、$ T $ 個のテストケースを解いてください。
Input Format
入力は標準入力から以下の形式で与えられる。
> $ T $ $ case_1 $ $ case_2 $ $ \vdots $ $ case_T $
各ケースは以下の形式である。
> $ N $ $ K $ $ B_1 $ $ B_2 $ $ \ldots $ $ B_N $
Output Format
各テストケースについて、題意を満たす列 $ A $ が存在しなければ、`NO` と出力せよ。
そうでなければ、答えを次の形式で出力せよ。
> YES $ A_1 $ $ A_2 $ $ \ldots $ $ A_{N+K-1} $
ここで、$ 1\ \leq\ A_i\ \leq\ N+K-1 $ でなければならず、$ A $ は $ B $ を生成するものでなければならない。 複数の解が存在する場合は、そのいずれも認められる。
`YES` または `NO` の出力において、各文字は英大文字・小文字のいずれでもよい。
Explanation/Hint
### 制約
- $ 1\ \le\ T\ \le\ 5\ \cdot\ 10^4 $
- $ 2\ \le\ N\ \le\ 2\ \cdot\ 10^5 $
- $ 2\ \le\ K\ \le\ 2\ \cdot\ 10^5 $
- $ 1\ \le\ B_i\ \le\ K $
- 各入力ファイル内の $ N $ の総和は $ 2\cdot\ 10^5 $ を超えない。
- 各入力ファイル内の $ K $ の総和は $ 2\cdot\ 10^5 $ を超えない。
- 入力中のすべての値は整数である。