To evaluate the performance of our first year CS majored students, we consider their grades of three courses only: C
- C Programming Language, M
- Mathematics (Calculus or Linear Algrbra), and E
- English. At the mean time, we encourage students by emphasizing on their best ranks – that is, among the four ranks with respect to the three courses and the average grade, we print the best rank for each student.
For example, The grades of C
, M
, E
and A
- Average of 4 students are given as the following:
1 | StudentID C M E A |
Then the best ranks for all the students are No.1 since the 1st one has done the best in C Programming Language, while the 2nd one in Mathematics, the 3rd one in English, and the last one in average.
Input Specification:
Each input file contains one test case. Each case starts with a line containing 2 numbers N and M (≤2000), which are the total number of students, and the number of students who would check their ranks, respectively. Then N lines follow, each contains a student ID which is a string of 6 digits, followed by the three integer grades (in the range of [0, 100]) of that student in the order of C
, M
and E
. Then there are M lines, each containing a student ID.
Output Specification:
For each of the M students, print in one line the best rank for him/her, and the symbol of the corresponding rank, separated by a space.
The priorities of the ranking methods are ordered as A
> C
> M
> E
. Hence if there are two or more ways for a student to obtain the same best rank, output the one with the highest priority.
If a student is not on the grading list, simply output N/A
.
Sample Input:
1 | 5 6 |
Sample Output:
1 | 1 C |
分析:
题目要求:给定N个学生,及其C语言(C)、数学(M)、英语(E)三门课的成绩,对包括平均分(A)在内的四个成绩分别进行排名。
给定M个学生的id,求他们的最好排名及对应的课程(或者平均分)
当有多个科目取得相同的最好排名时,按照A
> C
> M
> E
的顺序,输出其中优先级最大的课程。
若学生id不存在,则输出N/A
。
需要注意的地方:1.平均分要四舍五入;2.若分数相同,则排名并列。
1 |
|