CF1383D.Rearrange

省选/NOI-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Koa the Koala has a matrix AA of nn rows and mm columns. Elements of this matrix are distinct integers from 11 to n⋅mn \cdot m (each number from 11 to n⋅mn \cdot m appears exactly once in the matrix).

For any matrix MM of nn rows and mm columns let's define the following:

  • The ii-th row of MM is defined as Ri(M)=[Mi1,Mi2,…,Mim]R_i(M) = [ M_{i1}, M_{i2}, \ldots, M_{im} ] for all ii (1≤i≤n1 \le i \le n).
  • The jj-th column of MM is defined as Cj(M)=[M1j,M2j,…,Mnj]C_j(M) = [ M_{1j}, M_{2j}, \ldots, M_{nj} ] for all jj (1≤j≤m1 \le j \le m).

Koa defines S(A)=(X,Y)S(A) = (X, Y) as the spectrum of AA, where XX is the set of the maximum values in rows of AA and YY is the set of the maximum values in columns of AA.

More formally:

  • X=max⁡(R1(A)),max⁡(R2(A)),…,max⁡(Rn(A))X = { \max(R_1(A)), \max(R_2(A)), \ldots, \max(R_n(A)) }
  • Y=max⁡(C1(A)),max⁡(C2(A)),…,max⁡(Cm(A))Y = { \max(C_1(A)), \max(C_2(A)), \ldots, \max(C_m(A)) }

Koa asks you to find some matrix A′A' of nn rows and mm columns, such that each number from 11 to n⋅mn \cdot m appears exactly once in the matrix, and the following conditions hold:

  • S(A′)=S(A)S(A') = S(A)
  • Ri(A′)R_i(A') is bitonic for all ii (1≤i≤n1 \le i \le n)
  • Cj(A′)C_j(A') is bitonic for all jj (1≤j≤m1 \le j \le m)

An array tt (t1,t2,…,tkt_1, t_2, \ldots, t_k) is called bitonic if it first increases and then decreases.

More formally: tt is bitonic if there exists some position pp (1≤p≤k1 \le p \le k) such that: t1<t2<…<tp>tp+1>…>tkt_1 \lt t_2 \lt \ldots \lt t_p \gt t_{p+1} \gt \ldots \gt t_k.

Help Koa to find such matrix or to determine that it doesn't exist.

考拉熊 Koa 有一个 nn 行 mm 列的矩阵 AA。该矩阵的元素是 11 到 n⋅mn \cdot m 之间的互不相同的整数(即 11 到 n⋅mn \cdot m 中的每个整数在矩阵中恰好出现一次)。

对于任意一个 nn 行 mm 列的矩阵 MM,我们定义如下:

  • MM 的第 ii 行定义为 Ri(M)=[Mi1,Mi2,…,Mim]R_i(M) = [ M_{i1}, M_{i2}, \ldots, M_{im} ],其中 ii 满足 1≤i≤n1 \le i \le n;
  • MM 的第 jj 列定义为 Cj(M)=[M1j,M2j,…,Mnj]C_j(M) = [ M_{1j}, M_{2j}, \ldots, M_{nj} ],其中 jj 满足 1≤j≤m1 \le j \le m。

Koa 将 AA 的谱(spectrum)定义为 S(A)=(X,Y)S(A) = (X, Y),其中 XX 是矩阵 AA 各行最大值构成的集合,YY 是矩阵 AA 各列最大值构成的集合。

更形式化地:

  • X={max⁡(R1(A)),max⁡(R2(A)),…,max⁡(Rn(A))}X = \{ \max(R_1(A)), \max(R_2(A)), \ldots, \max(R_n(A)) \}
  • Y={max⁡(C1(A)),max⁡(C2(A)),…,max⁡(Cm(A))}Y = \{ \max(C_1(A)), \max(C_2(A)), \ldots, \max(C_m(A)) \}

Koa 请求你构造一个 nn 行 mm 列的矩阵 A′A',使得 11 到 n⋅mn \cdot m 中的每个整数在 A′A' 中恰好出现一次,并满足以下条件:

  • S(A′)=S(A)S(A') = S(A);
  • 对所有 ii(1≤i≤n1 \le i \le n),Ri(A′)R_i(A') 是双调数组(bitonic);
  • 对所有 jj(1≤j≤m1 \le j \le m),Cj(A′)C_j(A') 是双调数组(bitonic)。

一个数组 t=(t1,t2,…,tk)t = (t_1, t_2, \ldots, t_k) 被称为双调数组,如果它先严格递增、再严格递减。

更形式化地:tt 是双调数组,当且仅当存在某个位置 pp(1≤p≤k1 \le p \le k),使得

t1<t2<…<tp>tp+1>…>tk.t_1 < t_2 < \ldots < t_p > t_{p+1} > \ldots > t_k.

请帮助 Koa 找到满足上述条件的矩阵 A′A',或判定这样的矩阵不存在。

输入格式

The first line of the input contains two integers nn and mm (1≤n,m≤2501 \le n, m \le 250) — the number of rows and columns of AA.

Each of the ollowing nn lines contains mm integers. The jj-th integer in the ii-th line denotes element AijA_{ij} (1≤Aij≤n⋅m1 \le A_{ij} \le n \cdot m) of matrix AA. It is guaranteed that every number from 11 to n⋅mn \cdot m appears exactly once among elements of the matrix.

输入的第一行包含两个整数 nn 和 mm(1≤n,m≤2501 \le n, m \le 250)—— 分别表示矩阵 AA 的行数和列数。

接下来的 nn 行,每行包含 mm 个整数。第 ii 行中的第 jj 个整数表示矩阵 AA 的元素 AijA_{ij}(1≤Aij≤n⋅m1 \le A_{ij} \le n \cdot m)。保证矩阵中恰好出现一次从 11 到 n⋅mn \cdot m 的每个整数。

输出格式

If such matrix doesn't exist, print −1-1 on a single line.

Otherwise, the output must consist of nn lines, each one consisting of mm space separated integers — a description of A′A'.

The jj-th number in the ii-th line represents the element Aij′A'_{ij}.

Every integer from 11 to n⋅mn \cdot m should appear exactly once in A′A', every row and column in A′A' must be bitonic and S(A)=S(A′)S(A) = S(A') must hold.

If there are many answers print any.

如果这样的矩阵不存在,则在单独一行中输出 −1-1。

否则,输出必须包含 nn 行,每行包含 mm 个以空格分隔的整数——即矩阵 A′A' 的描述。

第 ii 行中的第 jj 个数表示元素 Aij′A'_{ij}。

11 到 n⋅mn \cdot m 中的每个整数在 A′A' 中必须恰好出现一次;A′A' 的每一行和每一列都必须是双调的(bitonic),且需满足 S(A)=S(A′)S(A) = S(A')。

若存在多个解,输出任意一个即可。

输入输出样例

  • 输入#1

    3 3
    3 5 6
    1 7 9
    4 8 2

    输出#1

    9 5 1
    7 8 2
    3 6 4
  • 输入#2

    2 2
    4 1
    3 2

    输出#2

    4 1
    3 2
  • 输入#3

    3 4
    12 10 8 6
    3 4 5 7
    2 11 9 1

    输出#3

    12 8 6 1
    10 11 9 2
    3 4 5 7

说明/提示

Let's analyze the first sample:

For matrix AA we have:

  • Rows:

    • R1(A)=[3,5,6];max⁡(R1(A))=6R_1(A) = [3, 5, 6]; \max(R_1(A)) = 6
    • R2(A)=[1,7,9];max⁡(R2(A))=9R_2(A) = [1, 7, 9]; \max(R_2(A)) = 9
    • R3(A)=[4,8,2];max⁡(R3(A))=8R_3(A) = [4, 8, 2]; \max(R_3(A)) = 8
  • Columns:

    • C1(A)=[3,1,4];max⁡(C1(A))=4C_1(A) = [3, 1, 4]; \max(C_1(A)) = 4
    • C2(A)=[5,7,8];max⁡(C2(A))=8C_2(A) = [5, 7, 8]; \max(C_2(A)) = 8
    • C3(A)=[6,9,2];max⁡(C3(A))=9C_3(A) = [6, 9, 2]; \max(C_3(A)) = 9
  • X=max⁡(R1(A)),max⁡(R2(A)),max⁡(R3(A))=6,9,8X = { \max(R_1(A)), \max(R_2(A)), \max(R_3(A)) } = { 6, 9, 8 }

  • Y=max⁡(C1(A)),max⁡(C2(A)),max⁡(C3(A))=4,8,9Y = { \max(C_1(A)), \max(C_2(A)), \max(C_3(A)) } = { 4, 8, 9 }

  • So S(A)=(X,Y)=(6,9,8,4,8,9)S(A) = (X, Y) = ({ 6, 9, 8 }, { 4, 8, 9 })

For matrix A′A' we have:

  • Rows:

    • R1(A′)=[9,5,1];max⁡(R1(A′))=9R_1(A') = [9, 5, 1]; \max(R_1(A')) = 9
    • R2(A′)=[7,8,2];max⁡(R2(A′))=8R_2(A') = [7, 8, 2]; \max(R_2(A')) = 8
    • R3(A′)=[3,6,4];max⁡(R3(A′))=6R_3(A') = [3, 6, 4]; \max(R_3(A')) = 6
  • Columns:

    • C1(A′)=[9,7,3];max⁡(C1(A′))=9C_1(A') = [9, 7, 3]; \max(C_1(A')) = 9
    • C2(A′)=[5,8,6];max⁡(C2(A′))=8C_2(A') = [5, 8, 6]; \max(C_2(A')) = 8
    • C3(A′)=[1,2,4];max⁡(C3(A′))=4C_3(A') = [1, 2, 4]; \max(C_3(A')) = 4
  • Note that each of this arrays are bitonic.

  • X=max⁡(R1(A′)),max⁡(R2(A′)),max⁡(R3(A′))=9,8,6X = { \max(R_1(A')), \max(R_2(A')), \max(R_3(A')) } = { 9, 8, 6 }

  • Y=max⁡(C1(A′)),max⁡(C2(A′)),max⁡(C3(A′))=9,8,4Y = { \max(C_1(A')), \max(C_2(A')), \max(C_3(A')) } = { 9, 8, 4 }

  • So S(A′)=(X,Y)=(9,8,6,9,8,4)S(A') = (X, Y) = ({ 9, 8, 6 }, { 9, 8, 4 })

我们来分析第一个样例:

对于矩阵 AA,有:

  • 行:

    • R1(A)=[3,5,6];max⁡(R1(A))=6R_1(A) = [3, 5, 6]; \max(R_1(A)) = 6
    • R2(A)=[1,7,9];max⁡(R2(A))=9R_2(A) = [1, 7, 9]; \max(R_2(A)) = 9
    • R3(A)=[4,8,2];max⁡(R3(A))=8R_3(A) = [4, 8, 2]; \max(R_3(A)) = 8
  • 列:

    • C1(A)=[3,1,4];max⁡(C1(A))=4C_1(A) = [3, 1, 4]; \max(C_1(A)) = 4
    • C2(A)=[5,7,8];max⁡(C2(A))=8C_2(A) = [5, 7, 8]; \max(C_2(A)) = 8
    • C3(A)=[6,9,2];max⁡(C3(A))=9C_3(A) = [6, 9, 2]; \max(C_3(A)) = 9
  • X=max⁡(R1(A)),max⁡(R2(A)),max⁡(R3(A))=6,9,8X = { \max(R_1(A)), \max(R_2(A)), \max(R_3(A)) } = { 6, 9, 8 }

  • Y=max⁡(C1(A)),max⁡(C2(A)),max⁡(C3(A))=4,8,9Y = { \max(C_1(A)), \max(C_2(A)), \max(C_3(A)) } = { 4, 8, 9 }

  • 因此 S(A)=(X,Y)=(6,9,8,4,8,9)S(A) = (X, Y) = ({ 6, 9, 8 }, { 4, 8, 9 })

对于矩阵 A′A',有:

  • 行:

    • R1(A′)=[9,5,1];max⁡(R1(A′))=9R_1(A') = [9, 5, 1]; \max(R_1(A')) = 9
    • R2(A′)=[7,8,2];max⁡(R2(A′))=8R_2(A') = [7, 8, 2]; \max(R_2(A')) = 8
    • R3(A′)=[3,6,4];max⁡(R3(A′))=6R_3(A') = [3, 6, 4]; \max(R_3(A')) = 6
  • 列:

    • C1(A′)=[9,7,3];max⁡(C1(A′))=9C_1(A') = [9, 7, 3]; \max(C_1(A')) = 9
    • C2(A′)=[5,8,6];max⁡(C2(A′))=8C_2(A') = [5, 8, 6]; \max(C_2(A')) = 8
    • C3(A′)=[1,2,4];max⁡(C3(A′))=4C_3(A') = [1, 2, 4]; \max(C_3(A')) = 4
  • 注意:每个这样的数组都是双调的(bitonic)。

  • X=max⁡(R1(A′)),max⁡(R2(A′)),max⁡(R3(A′))=9,8,6X = { \max(R_1(A')), \max(R_2(A')), \max(R_3(A')) } = { 9, 8, 6 }

  • Y=max⁡(C1(A′)),max⁡(C2(A′)),max⁡(C3(A′))=9,8,4Y = { \max(C_1(A')), \max(C_2(A')), \max(C_3(A')) } = { 9, 8, 4 }

  • 因此 S(A′)=(X,Y)=(9,8,6,9,8,4)S(A') = (X, Y) = ({ 9, 8, 6 }, { 9, 8, 4 })

输入解题思路,AI测评打分。不知道怎么写?

首页