/ TYWZ / 题库 /

Report (Simple Ver.)

Report (Simple Ver.)

题目描述

断罪中学⑨年级的学生们终于迎来了期末考试,心花怒放的他们原以为考完试就解放了,可谁知学校突然下令考试之后立即补课……
设参加考试的⑨年级学生共有\(N\)人,考试科目有\(K\)门。输入这\(N\)名学生的学号和各科成绩,请你排出一张全年级的成绩单,要求:
(1)总成绩高的排在前边;
(2)总成绩并列的,学号较小的排在前边;
(3)更多要求见“输出格式”部分。

I/O格式

输入

第一行是两个正整数\(N, K\);
之后\(N\)行描述每名学生的信息,每行\(K+1\)个非负整数:先是该学生的学号\(C_i\),然后依次是各科成绩\(s_{i,1}, s_{i,2} \cdots s_{i,K}\)。保证任意两名学生的学号不相同。

输出

输出\(N\)行,按排好后的顺序输出每名同学的信息。每行依次为:该生的学号、各科成绩(与输入时顺序一致)、总成绩。
为了让排出来的成绩表更美观,要求:
(1)每一列均为右对齐;
(2)最左边一列中,字符数最多的一格顶住左端;对于右边几列,字符数最多的一格与前一列间距2个空格。
细则可以参考样例。

样例

输入

6 3 
155420 83 125 104 
125439 101 90 95
135240 80 79 99
16548 122 119 71
210021 120 113 132
233333 2 3 3

输出

210021  120  113  132  365
 16548  122  119   71  312
155420   83  125  104  312
125439  101   90   95  286
135240   80   79   99  258
233333    2    3    3    8

提示

较大型的结构体作为函数参数时,建议将形参设为常量左值引用(const T&),以避免无谓的内存拷贝。

struct Foo {
    int arr[256];
    int x;
};
void foo1(Foo f) {
    //形参传值,Foo结构体内的大数组arr会拷贝过来,严重影响性能
}
void foo2(const Foo& f) {
    //形参传常量引用,避免内存拷贝
}

数据规模及约定

\(N \le 2 \times 10^4; \phantom{x} K \le 10; \phantom{x} 10^5 \le C_i < 10^{24}; \phantom{x} 0 \le s_i \le 150\)
前20%的数据保证:\(N < 10; \phantom{x} 10 \le s_{i,j} < 100; \phantom{x} 100 \le \sum_{j=1}^{K} s_{i,j} < 1000; \phantom{x} 10^6 \le C_i < 10^7\)
随后40%的数据保证:所有学号的位数均相同,即\(\exists p \in \{5,6 \cdots 23\}, \phantom{x} \forall i = 1, 2 \cdots N, \phantom{x} 10^p \le C_i < 10^{p+1}\)
时间限制1s,空间限制64MB。

来源

原创题

信息

难度
8
分类
其他 | 排序模拟 点击显示
标签
(无)
递交数
155
已通过
15
通过率
10%
上传者