C1147 - 方阵排序
题目描述
小明所在的学校要举行运动会,在运动会开幕式上要进行走方阵的表演,现在小明知道一共有k个方阵,每一个方阵由n行m列的同学组成。
方阵里每个同学的身高不同,为了达到更好的表演效果,老师想对这些方阵进行合理的排序,排序的规则是:
按照每个方阵里所有同学的平均身高进行从小到大的排序,平均身高越小的越排在前面出场,平均身高高的排在后面出场。
平均身高的计算规则是:一个方阵里所有同学的身高之和 除以 方阵里的人数,得到的平均身高保留小数点后2位,注意还需要对第3位小数进行四舍五入。
比如,计算得到的平均身高为178.467,那么最终用于比较的平均身高为178.47,如果计算得到的平均身高为178.464,那么最终用于比较的平均身高为178.46。
现在给定每个方阵的每位同学的身高信息,请你编写一个程序来对所有方阵进行合理的排序,输出最终的方阵数据。
输入格式
第1行,1个正整数k,代表接下来有k个方阵
每个方阵的数据格式为:
n m
h[11] h[12] h[13] ... h[1m]
h[21] h[22] h[23] ... h[2m]
...
h[n1] h[n2] h[n3] ... h[nm]
第1行n和m代表方阵为n行m列
h[11]代表第1行第1列的同学的身高,其他以此类推
输出格式
按照平均身高的排序规则排序后的k个方阵信息,形如:
n m
h[11] h[12] h[13] ... h[1m]
h[21] h[22] h[23] ... h[2m]
...
h[n1] h[n2] h[n3] ... h[nm]
n m
h[11] h[12] h[13] ... h[1m]
h[21] h[22] h[23] ... h[2m]
...
h[n1] h[n2] h[n3] ... h[nm]
...
如果有方阵的平均身高相同,则按照输入的顺序排序,先输入的排在前面,后输入的排在后面
具体参考输入输出样例
样例 #1 输入
5
2 2
170 168
169 180
3 4
170 170 171 140
180 190 199 170
145 146 147 148
3 2
130 150
180 190
178 189
1 1
180
5 4
160 160 160 160
161 160 160 160
160 163 160 160
160 150 160 160
160 160 170 180
样例 #1 输出
5 4
160 160 160 160
161 160 160 160
160 163 160 160
160 150 160 160
160 160 170 180
3 4
170 170 171 140
180 190 199 170
145 146 147 148
3 2
130 150
180 190
178 189
2 2
170 168
169 180
1 1
180
数据范围与提示
100%的数据:$1 \le k, n, m \le 100$,方阵里每个学生的身高在120 - 200之间(单位厘米),且都为整数
提示
浮点数比较可能会存在一定的误差,建议仅使用整型变量进行比较,比如两个方阵的平均身高计算结果分别为:178.467和178.464
那么可以将这两个浮点数转换为17847和17846后进行整数的比较,这样可以避免掉因为浮点数本身的原因带来的不精确比较的问题
测试点数目
共10个测试点,每个测试点10分
时间与内存限制
每个测试点时间:1000ms(1.0s),内存:256MiB
输入输出模式
本OJ支持两种输入输出模式