E : 选课 & 学分

Progress Bar

时间限制:6 Sec 内存限制:128 MiB

提交


题目描述

没错,又是选课,如果你看过这次比赛的另外两道英文题,就知道为什么要用 “又” 了。多来一题不多,少出一题也不少,那就来咯(这题题意十分简单明了,只作为各位神仙选手看不懂英语题目的补偿)。

SZ市某大学某年级共有m类选修课程,每类选修课程设有n种分支,每个分支单独为学生打分。特别的是,该学校学生对于任何选修课都没有明显的短板,所以校长特意度身定做了一个打分制度:

首先由各个老师给出成绩,每类选修课程的每个分支都需要单独打分,其次,从每类选修课程的分支中都任选出一个分数,相加,共有nm种情况,也就有nm个值(这个值可以相等),为了不让某位学生的特长拉高太多分数,需要再从这么多数中挑出最小的n个,最后在实数范围内任选一个数字,将这个数字分别与挑出的n个数字相减后取绝对值的结果再求和,最小的和即为该学生选修课的最终成绩(因为这个特殊的计算成绩的方式,所以各个分支的成绩可以为负数)。

现在,zzz只知道自己各类选修课程的各个分支的成绩,想提前知道自己选修课的成绩,但自己什么都不会,只好向你求救!

输入描述

第一行输入m, n. ( 1 ≤ m ≤ 1000    1 ≤ n ≤ 2000 )

接下来m行,每行n个整数表示某类选修课的某个分支的成绩x. ( 题目保证x的绝对值的int范围内)

输出描述

第一行升序输出挑出的n的数字,数字之间用空格隔开,行末没有多余的空格。

第二行输出最终成绩。

样例输入

2 3
1 2 3
2 2 3

样例输出

3 3 4
1

来源

逆乾  WIT第二届程序设计竞赛(现场赛)