問題一覧 > 通常問題

No.3338 Whole Reverse Contradiction

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 5
作問者 : kencho / テスター : cn_449 みうね
ProblemId : 12749 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-11-08 02:00:13
コンテストの他の問題:

問題文

縦 $N$ 行、横 $N$ 列のマス目があり、上から $i$ 行目、左から $j$ 列目のマスを $(i,\ j)$ と表すことにします。
各マスには整数が書かれており、書かれている整数は $1$ 以上 $N^2$ 以下かつ全て異なります。

さて、以下の $2$ 種類の操作があります。

  • 操作 $1$ : 行を $1$ つ選び、その行を左右反転する。
  • 操作 $2$ : 列を $1$ つ選び、その列を上下反転する。
あなたはこれらの操作を合計して $0$ 回以上 $4N^2$ 回以下行うことができます。
ただし、操作 $1$ $\rightarrow$ 操作 $2$ $\rightarrow$ 操作 $1$ $\rightarrow$ 操作 $2$ $\rightarrow$ $\cdots$ のように、操作列全体を通して奇数回目には操作 $1$ 、偶数回目には操作 $2$ を行う必要があります。

最初にマス $(i,\ j)$ に書かれている数字が $A_{i,j}$ であるとき、操作が完了した後のマス $(i,\ j)$ に書かれている数字が $(i - 1) \times N + j$ となるようにすることは可能ですか?
可能な場合はそのような操作列の一例を求め、不可能な場合はその旨を報告してください。

$T$ 個のテストケースが与えられるため、それぞれに解答してください。

制約

  • 入力は全て整数
  • $1 \leq T \leq 10^4$
  • $2 \leq N \leq 300$
  • $1 \leq A_{i,j} \leq N^2$
  • $A_{i_1, j_1} \neq A_{i_2, j_2}\ ((i_1,\ j_1) \neq (i_2,\ j_2))$
  • $1$ 個の入力ファイルにおける $N^2$ の総和は $9 \times 10^4$ を超えない

入力

入力は以下の形式で標準入力から与えられる。ここで、$case_i$ は $i$ 番目のケースを意味する。

$T$
$case_1$
$case_2$
$\vdots$
$case_T$

各テストケースは以下の形式で与えられる。

$N$
$A_{1, 1}\ A_{1, 2}\ \cdots\ A_{1, N}$
$A_{2, 1}\ A_{2, 2}\ \cdots\ A_{2, N}$
$\vdots$
$A_{N, 1}\ A_{N, 2}\ \cdots\ A_{N, N}$

出力

各ケースに対し、条件を満たす操作列が存在しない場合は -1 を、存在する場合は以下の形式でその一例を出力してください。

$K$
$B_1\ B_2\ \cdots\ B_K$

ただし、$K$ は操作の合計回数であり、$i$ が奇数のとき、$B_i$ は $i$ 回目の操作で選ぶ行が上から何行目であるかを表し、$i$ が偶数のとき、$B_i$ は $i$ 回目の操作で選ぶ列が左から何列目であるかをを表します。
各ケースに対する出力の最後に改行してください。

サンプル

サンプル1
入力
2
4
1 2 15 4
8 11 6 5
9 10 7 12
13 14 3 16
2
1 2
3 4
出力
2
2 3
0

$1$ つ目のテストケースについては、上から $2$ 行目、左から $3$ 列目をこの順に反転すると、マス目に書かれた数字は下図の様に変化し、上から $i$ 行目、左から $j$ 番目のマスに書かれた数字が $(i - 1) \times N + j$ となるため、これは正答となります。

$2$ つ目のテストケースについては、最初から条件を満たしているため、操作を行う必要はありません。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。