登录/注册
338. 能量宝石
时间限制: C/C++ 1000 ms | 其他语言 2000 ms
内存限制: C/C++ 64 MB | 其他语言 128 MB
尝试次数: 109 | 通过次数: 37
尝试人数: 28 | 通过人数: 26
标签: STL,基本语法
难度: 简单+
0
1

小棒瓜瓜有 mm 种能量宝石,每种宝石均有无限个,我们用 0,1,2...m10,1,2 ... m-1 给它们编号。

能量宝石是个双刃剑,能量越大对持有者的伤害越大。

00 号宝石的能量和伤害最大,其次是 11,接着是 22

一个 00 号宝石的能量和伤害,会超过无穷多个 11 号宝石。一个 11 号宝石会超过无穷多个 22 号宝石 …

nn 个外星人从小棒瓜瓜这里盗取了宝石,让我们对这 nn 个外星人受到的伤害进行从小到大排序。

例如,m=3,n=3m=3, n=3,两个外星人盗取的能量宝石分别为:

          0 号宝石   1 号宝石  2 号宝石

外星人 1     2个        0个       1个   
外星人 2     1个        2个       1个
外星人 3     1个        3个       1个
  • 外星人 11 盗取的 00 号宝石最多,他受到的伤害是最大的
  • 外星人 2,32,3 盗取的 00 号宝石相同,而外星人 33 拥有的 11 号宝石更多,受到的伤害排第二
  • 按受到的伤害从小到大排序则是:外星人 22 << 外星人 33 << 外星人 11

输入

  • 多组测试数据,以 EOF 结束
  • 每组测试数据:
    • 第一行两个整数 n,m(1n,m105,1n×m105)n,m(1 \leq n,m \leq 10^5, 1 \leq n \times m \leq 10^5),表示外星人数量和能量宝石的种类数
    • 接下来 nn 行,每行 mm 个整数,第 ii 的第 jj 个整数表示第 ii 个外星人盗取的第 jj 种能量宝石的数量,0a[i][j]1080 \leq a[i][j] \leq 10^8
  • 数据保证:多组测试数据的 n×mn \times m 总和不超过 10510^5

输出

  • 每个测试数据输出一个 n×mn \times m 的矩阵,表示按伤害从小到大排序后,每个外星人盗取的宝石数量
  • 注意每行的末尾不要输出多余的空格
样例 1
输入
3 3
2 0 1
1 2 1
1 3 1
输出
1 2 1
1 3 1
2 0 1