题意:

输入两个整数N,M(<=2000),接着分别输入N个学生的ID,C语言成绩,数学成绩和英语成绩。

M次询问,每次输入学生ID,如果该ID不存在则输出N/A,存在则输出该学生排名最考前的一门成绩的名次和课程编号。优先级:A>C>M>E。A代表CMD三门课的平均成绩(操作时可用总成绩来替代平均成绩处理)。

trick:

成绩相同时将其名次合并(多个学生并列)

AAAAAccepted code:

 #include<bits/stdc++.h>
using namespace std;
string s[];
int c[],m[],e[],a[];
pair<int,int>cc[],mm[],ee[],aa[];
int rak[],rak_c[],rak_m[],rak_e[],rak_a[];
char ans[];
map<string,int>mp;
bool cmp(pair<int,int>a,pair<int,int>b){
return a.first>b.first;
}
int main(){
int n,q;
cin>>n>>q;
for(int i=;i<=n;++i){
cin>>s[i]>>c[i]>>m[i]>>e[i];
a[i]=c[i]+m[i]+e[i];
cc[i].first=c[i];
cc[i].second=i;
mm[i].first=m[i];
mm[i].second=i;
ee[i].first=e[i];
ee[i].second=i;
aa[i].first=a[i];
aa[i].second=i;
mp[s[i]]=i;
}
sort(cc+,cc++n,cmp);
sort(mm+,mm++n,cmp);
sort(ee+,ee++n,cmp);
sort(aa+,aa++n,cmp);
for(int i=;i<=n;++i){
rak_c[i]=i;
if(cc[i].first==cc[i-].first)
rak_c[i]=rak_c[i-];
rak_m[i]=i;
if(mm[i].first==mm[i-].first)
rak_m[i]=rak_m[i-];
rak_e[i]=i;
if(ee[i].first==ee[i-].first)
rak_e[i]=rak_e[i-];
rak_a[i]=i;
if(aa[i].first==aa[i-].first)
rak_a[i]=rak_a[i-];
}
for(int i=;i<=n;++i){
rak[aa[i].second]=rak_a[i];
ans[aa[i].second]='A';
}
for(int i=;i<=n;++i)
if(rak_c[i]<rak[cc[i].second]){
rak[cc[i].second]=rak_c[i];
ans[cc[i].second]='C';
}
for(int i=;i<=n;++i)
if(rak_m[i]<rak[mm[i].second]){
rak[mm[i].second]=rak_m[i];
ans[mm[i].second]='M';
}
for(int i=;i<=n;++i)
if(rak_e[i]<rak[ee[i].second]){
rak[ee[i].second]=rak_e[i];
ans[ee[i].second]='E';
}
string quy;
for(int i=;i<=q;++i){
cin>>quy;
if(!mp[quy])
cout<<"N/A"<<"\n";
else
cout<<rak[mp[quy]]<<" "<<ans[mp[quy]]<<"\n";
}
return ;
}

【PAT甲级】1012 The Best Rank (25 分)的更多相关文章

  1. PAT 甲级 1012 The Best Rank (25 分)(结构体排序)

    题意: 为了评估我们第一年的CS专业学生的表现,我们只考虑他们的三个课程的成绩:C - C编程语言,M - 数学(微积分或线性代数)和E - 英语.同时,我们鼓励学生强调自己的最优秀队伍 - 也就是说 ...

  2. PAT甲级1012. The Best Rank

    PAT甲级1012. The Best Rank 题意: 为了评估我们第一年的CS专业学生的表现,我们只考虑他们的三个课程的成绩:C - C编程语言,M - 数学(微积分或线性代数)和E - 英语.同 ...

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

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

  4. 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 ...

  5. PAT 甲级 1062 Talent and Virtue (25 分)(简单,结构体排序)

    1062 Talent and Virtue (25 分)   About 900 years ago, a Chinese philosopher Sima Guang wrote a histor ...

  6. PAT 甲级 1056 Mice and Rice (25 分) (队列,读不懂题,读懂了一遍过)

    1056 Mice and Rice (25 分)   Mice and Rice is the name of a programming contest in which each program ...

  7. PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历)

    1040 Longest Symmetric String (25 分)   Given a string, you are supposed to output the length of the ...

  8. PAT 甲级 1083 List Grades (25 分)

    1083 List Grades (25 分) Given a list of N student records with name, ID and grade. You are supposed ...

  9. PAT甲级——1130 Infix Expression (25 分)

    1130 Infix Expression (25 分)(找规律.中序遍历) 我是先在CSDN上面发表的这篇文章https://blog.csdn.net/weixin_44385565/articl ...

  10. PAT 甲级 1074 Reversing Linked List (25 分)(链表部分逆置,结合使用双端队列和栈,其实使用vector更简单呐)

    1074 Reversing Linked List (25 分)   Given a constant K and a singly linked list L, you are supposed ...

随机推荐

  1. LoadRunner通过验证参数判断事物的成功与失败

    if(atoi(lr_eval_string("{Param_DiscountID}")) > 0){ //lr_message("多机多酒:%s",lr ...

  2. Linux04——手动修改IP和关闭防火墙服务

    两种方法手动修改IP: 命令行方式 2. 图形化界面修改 点击应用即可(地址自行设置) 关闭防火墙服务,否则连不上Linux

  3. 微信小程序云函数中有以下未安装的依赖,如果未安装即全量上传

    云函数中有以下未安装的依赖,如果未安装即全量上传 在新建的云函数,右击终端打开->cmd,安装依赖 npm install --production 依赖安装成功之后,文件里面会出现 packa ...

  4. 《深入理解Java虚拟机》读书笔记四

    第五章 调优案例分析与实战

  5. Jmeter_选项_函数助手_RandomString的用法

    1.用处:测试账户注册可以通过随机生成数实现,而不需要Excel手动输入, 缺点:随机生成数可能会重复 优点:不需要使用CSV config 或者excel ,txt格式 2.举例:之前我们通过CSV ...

  6. C语言知识点记录

    1,栈底指针不变,栈顶指针变化. 2,结构化程序包括:顺序,分支,循环. 3,详细设计的任务是为软件结构图的每一个模块确定实现算法和局部数据结构. 4,数据操纵语言:负责数据的操纵,包括查询及增,删, ...

  7. python实现直方图均衡化,理想高通滤波与高斯低通滤波

    写在前面 HIT大三上学期视听觉信号处理课程中视觉部分的实验二,经过和学长们实验的对比发现每一级实验要求都不一样,因此这里标明了是2019年秋季学期的视觉实验二. 由于时间紧张,代码没有进行任何优化, ...

  8. JDK源码分析-HashMap

    一.HashMap的内部属性 1.1 成员变量 1.1.1 size: HashMap包含的KV键值对的数量,也就是我们通常调用Map.size()方法的返回值 public int size() { ...

  9. Springboot学习:SpringMVC自动配置

    Spring MVC auto-configuration Spring Boot 自动配置好了SpringMVC 以下是SpringBoot对SpringMVC的默认配置:==(WebMvcAuto ...

  10. Springboot学习:底层依赖与自动配置的原理

    springboot依赖的父项目 我们在创建springboot项目的时候,设置了一个父项目: 这个项目可以点进去,可以发现它依赖于另一个父项目 再次点进去,发现没有依赖父项目了 观察这个项目的pom ...