AT_arc208_d [ARC208D] Symmetric Matrix
Description
各要素が $ 1 $ 以上 $ N $ 以下であるような長さ $ N $ の整数列 $ Y=(Y_1,Y_2,\ldots,Y_N) $ が与えられます。
以下の条件を全て満たす $ N $ 行 $ N $ 列の整数行列 $ A=(A_{i,j}) $ $ (1\le i , j \le N) $ が存在するか判定し、存在する場合は一つ求めてください。
- $ 1\le A_{i,j} \le N $ $ (1\le i \le N, 1\le j\le N) $
- $ A_{i,j}=A_{j,i} $ $ (1\le i\le N, 1\le j\le N) $
- $ A_{i,j_1}\neq A_{i,j_2} $ $ (1\le i\le N, 1\le j_1 < j_2 \le N) $
- $ A_{i,Y_i}=1 $ $ (1\le i\le N) $
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \text{case}_1 $ $ \text{case}_2 $ $ \vdots $ $ \text{case}_T $
各テストケースは以下の形式で与えられる。
> $ N $ $ Y_1 $ $ Y_2 $ $ \ldots $ $ Y_N $
Output Format
各テストケースに対する答えを順に改行区切りで出力せよ。
各テストケースについて、条件を全て満たす $ A $ が存在しない場合は `No` を出力せよ。
そうでない場合、条件を全て満たす $ A $ を以下の形式で出力せよ。
> Yes $ A_{1,1} $ $ A_{1,2} $ $ \ldots $ $ A_{1,N} $ $ A_{2,1} $ $ A_{2,2} $ $ \ldots $ $ A_{2,N} $ $ \vdots $ $ A_{N,1} $ $ A_{N,2} $ $ \ldots $ $ A_{N,N} $
条件を全て満たす $ A $ が複数ある場合、どれを出力しても正答となる。
Explanation/Hint
### Sample Explanation 1
$ 1 $ つ目のテストケースについて考えます。
出力例の $ A $ は条件を全て満たすことが確認できます。この他にも、例えば以下のような $ A $ を出力しても正答となります。
```
1 3 2
3 2 1
2 1 3
```
### Constraints
- $ 1\le T\le 5000 $
- $ 1\le N \le 500 $
- 全てのテストケースにおける $ N^2 $ の総和は $ 500^2 $ 以下
- $ 1\le Y_i\le N $
- 入力される値は全て整数