问题 5631 --矩阵调优

5631: 矩阵调优

时间限制: 1 Sec  内存限制: 256 MB
提交: 6  解决: 4
[提交][状态][命题人:]

题目描述

给定一个大小为 n*m 的矩阵 A ,矩阵内的元素均为 [1,n*m] 范围内的整数,且互不相同。现在你需要调整矩阵 A 内元素的位置,得到矩阵 B ,使其满足以下条件:
1. 矩阵 B 内的元素均为 [1,n*m] 范围内的整数,且互不相同。
2. 矩阵 A 中每行元素的最大值构成的集合,等于矩阵 B 中每行元素的最大值构成的集合。
3. 矩阵 A 中每列元素的最大值构成的集合,等于矩阵 B 中每列元素的最大值构成的集合。
4. 对于任意整数 i∈[1,n] ,满足矩阵 B 中第 i 行的元素先增后减,即存在正整数 k 满足 B[i][1]<B[i][2]<...<B[i][k]>B[i][k+1]>...>B[i][m] 。
4. 对于任意整数 j∈[1,m] ,满足矩阵 B 中第 j 列的元素先增后减,即存在正整数 k 满足 B[1][j]<B[2][j]<...<B[k][j]>B[k+1][j]>...>B[n][j] 。

求矩阵 B 。若有多组方案,输出任意一种即可。若不存在方案,输出 -1 。

输入

第一行输入两个正整数 n,m (1≤n,m≤250) ,表示矩阵的行列数。
接下来 n 行,每行包含 m 个整数,表示矩阵 A 。

输出

输出矩阵 B 。若有多组方案,输出任意一种即可。若不存在方案,输出 -1 。
样例输入
Copy
样例1:
3 3
3 5 6
1 7 9
4 8 2

样例2:
2 2
4 1
3 2

样例3:
3 4
12 10 8 6
3 4 5 7
2 11 9 1
样例输出
Copy
样例输出
样例1:
9 5 1
7 8 2
3 6 4

样例2:
4 1
3 2

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

提示

来源

[提交][状态]