【PAT甲级】1012 The Best Rank (25 分)
题意:
输入两个整数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 分)的更多相关文章
- PAT 甲级 1012 The Best Rank (25 分)(结构体排序)
题意: 为了评估我们第一年的CS专业学生的表现,我们只考虑他们的三个课程的成绩:C - C编程语言,M - 数学(微积分或线性代数)和E - 英语.同时,我们鼓励学生强调自己的最优秀队伍 - 也就是说 ...
- PAT甲级1012. The Best Rank
PAT甲级1012. The Best Rank 题意: 为了评估我们第一年的CS专业学生的表现,我们只考虑他们的三个课程的成绩:C - C编程语言,M - 数学(微积分或线性代数)和E - 英语.同 ...
- 1012 The Best Rank (25分) vector与结构体排序
1012 The Best Rank (25分) To evaluate the performance of our first year CS majored students, we con ...
- 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 ...
- PAT 甲级 1062 Talent and Virtue (25 分)(简单,结构体排序)
1062 Talent and Virtue (25 分) About 900 years ago, a Chinese philosopher Sima Guang wrote a histor ...
- 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 ...
- PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历)
1040 Longest Symmetric String (25 分) Given a string, you are supposed to output the length of the ...
- PAT 甲级 1083 List Grades (25 分)
1083 List Grades (25 分) Given a list of N student records with name, ID and grade. You are supposed ...
- PAT甲级——1130 Infix Expression (25 分)
1130 Infix Expression (25 分)(找规律.中序遍历) 我是先在CSDN上面发表的这篇文章https://blog.csdn.net/weixin_44385565/articl ...
- 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 ...
随机推荐
- mvc 上传文件 HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求。 maxRequestLength与 maxReceivedMessageSize 和 maxAllowedContentL区别
具体的错误信息如下: 在线上遇到了文件上传问题,在测试环境试了好久都没有发现问题到底出在哪里,以为是服务器做了各种限制,然后一点思绪都没有.最后,尝试将线上的代码包拷贝一份,在测试环境运行,刚开始的时 ...
- 中国大学MOOC 邮箱验证的问题
在使用 中国大学 MOOC 过程中,在PC端修改个人资料时,其中有项“常用邮箱”,于是写了QQ邮箱,结果发现一直无法验证,连邮件都无法收到. 经过多番尝试,重新使用邮箱注册的方式注册账号,然后注册成功 ...
- PHP 基础 自动类型转换之比较运算符
<?php var_dump(' 123fg456'>=122); var_dump('some string' == 0); var_dump(123.0 == '123d456'); ...
- tensorflow 学习记录
函数变动 tf.train.SummaryWriter 变为 tf.summary.Filewritter 函数功能相同,仅仅是简单的重命名 ``` writer = tf.summary.FileW ...
- 提高Scrapy爬取效率
1.增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加.在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100. 2.降低 ...
- 【Python下进程同步之互斥锁、信号量、事件机制】
" 一.锁机制: multiprocess.Lock 上篇博客中,我们千方百计实现了程序的异步,让多个任务同时在几个进程中并发处理,但它们之间的运行没有顺序.尽管并发编程让我们能更加充分的 ...
- zookeeper的安装(单机版)
一.获取zookeeper的安装包 zookeeper的官网下载:wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zo ...
- idea新建maven project工程
1.new project: 2.新建在main 下新建 java directory 并mark as source root,这里我已经makr过java目录所以以showfor做演示: 3.新 ...
- Flask, Django - 区别,个人体会
1. 目录结构 一般情况下,Django很系统.统一.Flask项目目录风格不同一,即使用上了蓝图. 2. 数据库迁移 Flask要用第三方extensions,而Django自带,这个很方便. 3. ...
- 【代码审计】MenInfo文件包含漏洞
代码审计是我之前一直不敢涉及的领域,它包含的知识面太广.最近才开始学习,前段时间写的第一篇代码审计的文章 更多的感觉像是一个黑盒测试.我也会尽量把文章写的通俗易懂.代码审计 0基础从大牛的蜕变 从这里 ...