[ABC317G] Rearranging
题意翻译
有一个 $N$ 行 $M$ 列的矩阵,其中 $1\sim N$ 各出现了恰好 $M$ 次,你可以进行任意次操作,每次操作可以把一行任意重排,最后要使得矩阵每一列都是一个长度为 $N$ 的排列。
如果不能达到目标,输出 `No`。
如果能达到目标,输出一行 `Yes`,之后输出重排后的矩阵。
$N,M\le 100$。
题目描述
[problemUrl]: https://atcoder.jp/contests/abc317/tasks/abc317_g
$ N $ 行 $ M $ 列のグリッドがあります。上から $ i $ 行目左から $ j $ 列目のマスには整数 $ A_{i,j} $ が書かれています。
ここで、グリッドのマスに書かれている計 $ NM $ 個の整数は $ 1,\ldots,N $ をちょうど $ M $ 個ずつ含みます。
あなたは次の手順でマスに書かれた数を入れ替える操作を行います。
- $ i=1,\ldots,N $ の順に次を行う。
- $ i $ 行目に書かれた数を自由に並び替える。すなわち、$ 1,\ldots,M $ の並び替えである長さ $ M $ の数列 $ P=(P_{1},\ldots,P_{M}) $ を自由に選び、$ A_{i,1},\ldots,A_{i,M} $ を 同時に $ A_{i,P_{1}},\ldots,A_{i,P_{M}} $ に置き換える。
あなたの目的は、操作後に全ての列が $ 1,\ldots,N $ を $ 1 $ つずつ含むようにすることです。そのようなことが可能であるか判定し、可能であれば操作後のグリッドの状態を出力してください。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A_{1,1} $ $ \ldots $ $ A_{1,M} $ $ \vdots $ $ A_{N,1} $ $ \ldots $ $ A_{N,M} $
输出格式
操作により全ての列が $ 1,\ldots,N $ を $ 1 $ つずつ含むようにするのが不可能ならば `No` と出力せよ。
可能であるとき、$ 1 $ 行目に `Yes` と出力し、続く $ N $ 行に、全ての列が $ 1,\ldots,N $ を $ 1 $ つずつ含むように操作したあとのグリッドの状態を次の形式で出力せよ。
グリッドの上から $ i $ 行目左から $ j $ 列目のマスに書かれた数を $ B_{i,j} $ とする。各 $ 1\leq\ i\ \leq\ N $ について $ i+1 $ 行目に $ B_{i,1},\ldots,B_{i,M} $ をこの順に空白区切りで出力せよ。
答えが複数存在する場合、どれを出力しても正解とみなされる。
输入输出样例
输入样例 #1
3 2
1 1
2 3
2 3
输出样例 #1
Yes
1 1
3 2
2 3
输入样例 #2
4 4
1 2 3 4
1 1 1 2
3 2 2 4
4 4 3 3
输出样例 #2
Yes
1 4 3 2
2 1 1 1
4 2 2 3
3 3 4 4
说明
### 制約
- $ 1\ \leq\ N,M\ \leq\ 100 $
- $ 1\ \leq\ A_{i,j}\ \leq\ N $
- 入力は全て整数である
- $ NM $ 個の数 $ A_{1,1},\ldots,A_{N,M} $ は $ 1,\ldots,N $ をそれぞれちょうど $ M $ 個ずつ含む
### Sample Explanation 1
この他、以下の出力も正解とみなされる。 ``` Yes 1 1 2 3 3 2 ```