题目链接在此。
已知N个学生的3门课程的分数C,M,E,平均分A可以通过三门课程求得。现在分别按这4个分数对考生进行从高到低的排序(对于每个考生而言就有4个顺序,每门课分数就会有一个排名)。
有M个查询,每个查询给出一个考生ID,需要输出该考生最高的那个排名的名次以及对应的科目。
如果不同的课程有相同的排名,则按照以下有衔接输出:A>C>M>E; 如果输入的考生号不存在,则输出N/A。
之前是想用结构体数组的下标来表示考生号ID,那样需要的空间超出了限制。《算法笔记》 的思想则是“折中”了一下, 它仅仅使用一个数组来保存每个学生每门课的排名:Rank[id][course],第一维的id就可以避免一次次的遍历,而可以直接访问到查询的考生排名,并且四种成绩的对应字符也保存到了一个映射数组中,方便输出。
新闻热点
疑难解答