atcoder#ABC277F. [ABC277F] Sorting a Matrix

[ABC277F] Sorting a Matrix

配点 : 500500

問題文

非負整数を要素とする HHWW 列の行列 AA が与えられます。 1iH1 \leq i \leq H かつ 1jW1 \leq j \leq W を満たす整数の組 (i,j)(i, j) について、 AAii 行目 jj 列目の要素を Ai,jA_{i, j} で表します。

AA に対して以下の手順を行います。

  • まず、AA の要素のうち 00 であるものそれぞれを、任意の正の整数で置き換える( 00 である要素が複数ある場合、それぞれを異なる正の整数で置き換えることもできます)。
  • その後、「下記の 22 つの操作のどちらかを行うこと」を好きな回数( 00 回でも良い)だけ行う。
    • 1i<jH1 \leq i \lt j \leq H を満たす整数の組 (i,j)(i, j) を選び、AAii 行目と jj 行目を入れ替える。
    • 1i<jW1 \leq i \lt j \leq W を満たす整数の組 (i,j)(i, j) を選び、AAii 列目と jj 列目を入れ替える。
  • 1i<jH1 \leq i \lt j \leq H を満たす整数の組 (i,j)(i, j) を選び、AAii 行目と jj 行目を入れ替える。
  • 1i<jW1 \leq i \lt j \leq W を満たす整数の組 (i,j)(i, j) を選び、AAii 列目と jj 列目を入れ替える。

AA が次の条件を満たすようにすることができるかどうかを判定してください。

  • $A_{1, 1} \leq A_{1, 2} \leq \cdots \leq A_{1, W} \leq A_{2, 1} \leq A_{2, 2} \leq \cdots \leq A_{2, W} \leq A_{3, 1} \leq \cdots \leq A_{H, 1} \leq A_{H, 2} \leq \cdots \leq A_{H, W}$
  • 言い換えると、1i,iH1 \leq i, i' \leq H および 1j,jW1 \leq j, j' \leq W を満たす任意の 22 つの整数の組 (i,j)(i, j)(i,j)(i', j') について、下記の 22 つの条件がともに成り立つ。
    • i<ii \lt i' ならば Ai,jAi,jA_{i, j} \leq A_{i', j'}
    • i=ii = i' かつ j<jj \lt j' 」ならば Ai,jAi,jA_{i, j} \leq A_{i', j'}
  • i<ii \lt i' ならば Ai,jAi,jA_{i, j} \leq A_{i', j'}
  • i=ii = i' かつ j<jj \lt j' 」ならば Ai,jAi,jA_{i, j} \leq A_{i', j'}

制約

  • 2H,W2 \leq H, W
  • H×W106H \times W \leq 10^6
  • 0Ai,jH×W0 \leq A_{i, j} \leq H \times W
  • 入力はすべて整数

入力

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

HH WW

A1,1A_{1, 1} A1,2A_{1, 2} \ldots A1,WA_{1, W}

A2,1A_{2, 1} A2,2A_{2, 2} \ldots A2,WA_{2, W}

\vdots

AH,1A_{H, 1} AH,2A_{H, 2} \ldots AH,WA_{H, W}

出力

AA が問題文中の条件を満たすようにできる場合は Yes を、できない場合は No を出力せよ。

3 3
9 6 0
0 4 0
3 0 3
Yes

以下の手順で操作を行うことで、AA が問題文中の条件を満たすようにすることができるため、Yes を出力します。

  • まず、AA00 である要素を下記の通りに置き換える。
9 6 8
5 4 4
3 1 3
  • 22 列目と 33 列目を入れ替える。その結果、AA は下記の通りとなる。
9 8 6
5 4 4
3 3 1
  • 11 行目と 33 行目を入れ替える。その結果、AA は下記の通りとなる。
3 3 1
5 4 4
9 8 6
  • 11 列目と 33 列目を入れ替える。その結果、AA は下記の通りとなり、問題文中の条件を満たすようになる。
1 3 3
4 4 5
6 8 9
2 2
2 1
1 2
No

どのように操作を行っても AA が問題文中の条件を満たすようにすることはできないため、No を出力します。