CF1383D.Rearrange
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Koa the Koala has a matrix A of n rows and m columns. Elements of this matrix are distinct integers from 1 to n⋅m (each number from 1 to n⋅m appears exactly once in the matrix).
For any matrix M of n rows and m columns let's define the following:
- The i -th row of M is defined as Ri(M)=[Mi1,Mi2,…,Mim] for all i ( 1≤i≤n ).
- The j -th column of M is defined as Cj(M)=[M1j,M2j,…,Mnj] for all j ( 1≤j≤m ).
Koa defines S(A)=(X,Y) as the spectrum of A , where X is the set of the maximum values in rows of A and Y is the set of the maximum values in columns of A .
More formally:
- X={max(R1(A)),max(R2(A)),…,max(Rn(A))}
- Y={max(C1(A)),max(C2(A)),…,max(Cm(A))}
Koa asks you to find some matrix A′ of n rows and m columns, such that each number from 1 to n⋅m appears exactly once in the matrix, and the following conditions hold:
- S(A′)=S(A)
- Ri(A′) is bitonic for all i ( 1≤i≤n )
- Cj(A′) is bitonic for all j ( 1≤j≤m )
An array t ( t1,t2,…,tk ) is called bitonic if it first increases and then decreases. More formally: t is bitonic if there exists some position p ( 1≤p≤k ) such that: t1<t2<…<tp>tp+1>…>tk .
Help Koa to find such matrix or to determine that it doesn't exist.
输入格式
The first line of the input contains two integers n and m ( 1≤n,m≤250 ) — the number of rows and columns of A .
Each of the ollowing n lines contains m integers. The j -th integer in the i -th line denotes element Aij ( 1≤Aij≤n⋅m ) of matrix A . It is guaranteed that every number from 1 to n⋅m appears exactly once among elements of the matrix.
输出格式
If such matrix doesn't exist, print −1 on a single line.
Otherwise, the output must consist of n lines, each one consisting of m space separated integers — a description of A′ .
The j -th number in the i -th line represents the element Aij′ .
Every integer from 1 to n⋅m should appear exactly once in A′ , every row and column in A′ must be bitonic and S(A)=S(A′) must hold.
If there are many answers print any.
输入输出样例
输入#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 A we have:
-
Rows:
- R1(A)=[3,5,6];max(R1(A))=6
- R2(A)=[1,7,9];max(R2(A))=9
- R3(A)=[4,8,2];max(R3(A))=8
-
Columns:
- C1(A)=[3,1,4];max(C1(A))=4
- C2(A)=[5,7,8];max(C2(A))=8
- C3(A)=[6,9,2];max(C3(A))=9
-
X={max(R1(A)),max(R2(A)),max(R3(A))}={6,9,8}
-
Y={max(C1(A)),max(C2(A)),max(C3(A))}={4,8,9}
-
So S(A)=(X,Y)=({6,9,8},{4,8,9})
For matrix A′ we have:
-
Rows:
- R1(A′)=[9,5,1];max(R1(A′))=9
- R2(A′)=[7,8,2];max(R2(A′))=8
- R3(A′)=[3,6,4];max(R3(A′))=6
-
Columns:
- C1(A′)=[9,7,3];max(C1(A′))=9
- C2(A′)=[5,8,6];max(C2(A′))=8
- C3(A′)=[1,2,4];max(C3(A′))=4
-
Note that each of this arrays are bitonic.
-
X={max(R1(A′)),max(R2(A′)),max(R3(A′))}={9,8,6}
-
Y={max(C1(A′)),max(C2(A′)),max(C3(A′))}={9,8,4}
-
So S(A′)=(X,Y)=({9,8,6},{9,8,4})