排序,水题
因为最后如果一个学生最好的排名有一样的,输出的课程有个优先级A>C>M>E
那么按这个优先级顺序进行排序
每次排序前先求当前课程的排名
然后再与目前最好的排名比较、更新

至于查询,建立id与索引的映射即可。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <map>
using namespace std;
const int maxn=+;
int n,m;
map<string,int> maps;
struct Stu{
char id[];
int score[];
int ranks;
int best_rank=;
int c;
}stu[maxn]; bool cmp1(Stu a,Stu b){
return a.score[]>b.score[];
}
bool cmp2(Stu a,Stu b){
return a.score[]>b.score[];
}
bool cmp3(Stu a,Stu b){
return a.score[]>b.score[];
}
bool cmp4(Stu a,Stu b){
return a.score[]>b.score[];
} void solveRanks(int k){
stu[].ranks=;
if(stu[].ranks<stu[].best_rank){
stu[].best_rank=stu[].ranks;
stu[].c=k;
}
for(int i=;i<n;i++){
if(stu[i].score[k]==stu[i-].score[k]){
stu[i].ranks=stu[i-].ranks;
}
else{
stu[i].ranks=i+;
}
if(stu[i].ranks<stu[i].best_rank){
stu[i].best_rank=stu[i].ranks;
stu[i].c=k;
}
}
}
int main()
{
scanf("%d %d",&n,&m);
for(int i=;i<n;i++){
scanf("%s %d %d %d",stu[i].id,&stu[i].score[],&stu[i].score[],&stu[i].score[]);
stu[i].score[]=(stu[i].score[]+stu[i].score[]+stu[i].score[])/;
}
sort(stu,stu+n,cmp4);
solveRanks(); sort(stu,stu+n,cmp1);
solveRanks(); sort(stu,stu+n,cmp2);
solveRanks(); sort(stu,stu+n,cmp3);
solveRanks(); string str;
for(int i=;i<n;i++){
str=stu[i].id;
maps[str]=i+;
}
char course[]={'C','M','E','A'};
for(int i=;i<m;i++){
cin>>str;
int idx=maps[str]-;
if(idx==-)
printf("N/A\n");
else
printf("%d %c\n",stu[idx].best_rank,course[stu[idx].c]);
}
return ;
}

PAT甲题题解-1012. The Best Rank (25)-排序水题的更多相关文章

  1. PAT甲题题解-1062. Talent and Virtue (25)-排序水题

    水题,分组排序即可. #include <iostream> #include <cstdio> #include <algorithm> #include < ...

  2. PAT甲题题解-1019. General Palindromic Number (20)-又是水题一枚

    n转化为b进制的格式,问你该格式是否为回文数字(即正着写和倒着写一样)输出Yes或者No并且输出该格式又是水题... #include <iostream> #include <cs ...

  3. PAT甲题题解-1125. Chain the Ropes (25)-贪心水题

    贪心水题,每次取最短的两个绳子合并,长度缩减成一半 #include <iostream> #include <cstdio> #include <algorithm&g ...

  4. PAT甲题题解-1052. Linked List Sorting (25)-排序

    三个注意点: 1.给出的n个节点并不一定都在链表中 2.最后一组样例首地址即为-1 3.输出地址的时候一直忘记前面要补0... #include <iostream> #include & ...

  5. PAT甲 1012. The Best Rank (25) 2016-09-09 23:09 28人阅读 评论(0) 收藏

    1012. The Best Rank (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To eval ...

  6. 1012 The Best Rank (25分) vector与结构体排序

    1012 The Best Rank (25分)   To evaluate the performance of our first year CS majored students, we con ...

  7. PAT甲题题解-1036. Boys vs Girls (25)-找最大最小,大水题

    题意:给出n个人的姓名.性别.ID.分数,让你找出其中哪个妹纸分数最高.哪个汉子分数最低.以及他们的差如果没有妹纸或者汉子,则对应输出Absent,差用NA代替. 就是for一遍找最大最小值,水题 # ...

  8. PAT甲题题解-1058. A+B in Hogwarts (20)-大水题

    无语,这种水题还出,浪费时间,但又不得不A... #include <iostream> #include <cstdio> #include <algorithm> ...

  9. HDU排序水题

    1040水题; These days, I am thinking about a question, how can I get a problem as easy as A+B? It is fa ...

随机推荐

  1. 邮件客户端修改密码—OWA

    邮件客户端修改密码—OWA 1.登录OWA 2.输入用户名 3.点击选项 4.更改密码

  2. 用JS制作《飞机大作战》游戏_第2讲(四大界面之间的跳转与玩家飞机的移动)-陈远波

    一.通过点击按钮事件,实现四大界面之间的跳转: (一)跳转的思路: 1.打开软件,只显示登录界面(隐藏游戏界面.暂停界面.玩家死亡界面) 2.点击微信登录(QQ登录)跳转到游戏界面,隐藏登录界面 3. ...

  3. beta冲刺————第三天(3/5)

    完善的具体内容: 前端: (1)可以进行修改文字大小背景 其中,金色的文字个人觉得很好看,点赞.(我很满意啊) (2)可以改变成夜间模式(也很不错啊) 后端: 尝试将本地的后端war文件,以及数据库传 ...

  4. 面向对象程序设计_Task7_Summary

    Summary of the ... 题目链接:第七次作业 终于还是迎来了这学期的最后一次作业,唠叨话还是放最后说,先说说计算器这玩意儿吧 贯穿了整个学期的计算器,要是让我对自己做个评价,顶多只是还好 ...

  5. python爬虫(二)

    python爬虫之urllib 在python2和python3中的差异 在python2中,urllib和urllib2各有各个的功能,虽然urllib2是urllib的升级版,但是urllib2还 ...

  6. 关于flex的crossdomain.xml文件存放目录

    最近在项目中遇到flex跨域访问的安全沙箱问题,查资料了解到需要在服务端加上crossdomain.xml文件,即: <?xml version="1.0" encoding ...

  7. python第二十九课——文件读写(readline()和readlines()的使用)

    演示readline()和readlines()的使用: #1.打开文件 f3=open(r'a.txt','r',encoding='gbk') #2.读取数据 content3=f3.readli ...

  8. apache中的directory 和virtualhost有啥区别和联系呀

    directory是virtualhost里的一项.用来指定目录访问权限与方法 . alias用来指定URL中的路径.第二项是物理路径,与directory完全相同才成. location有些象是将a ...

  9. 打印lua中全局变量的一段代码

    function printTableItem(k, v, level) , level do io.write(" ") end io.write(tostring(k), &q ...

  10. day60

    Bootstrap 一.简介 Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML.CSS.JavaScript 开发的简洁.直观.强悍的 ...