【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 ...
随机推荐
- STM32F103之GPIO学习记录
9 GPIO:通用I/O口 AFIO:可供选择的I/O口 9.1 GPIO功能描述 每一个通用的I/O口都有: 两个32位的配置寄存器(配置寄存器低和配置寄存器高): 两个32位的数据寄存器(输入数据 ...
- 排序算法大荟萃——希尔(Shell)排序算法
1.基本思想:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组.所有距离为d1的倍数的记录放在同一个组中.先再各族中进行直接插入排序,然后取第二个增量d2<d1重复上述的分组 ...
- mvn 搭建临时仓库批量下载依赖jar包
1.新建文件夹temp,在temp下新建setup.bat ,pom.xml 2.编辑setup.bat 和pom.xml bsetup.bat call mvn -f pom.xml depende ...
- 【Android】数据存储和访问
一.SharedPreferences 2.SQLite
- Codeforces 1311F Moving Points
题目链接 根据题意,d是两个点的最短距离,分析知,假设\(x_i\)<\(x_j\), 若\(v_i\)>\(v_j\),那么d(i,j)一定为0,因为i一定能追上j,否则,d(i,j)就 ...
- 【兆易创新RISC-V开发板评测】01.干货分享
背景介绍:2019年12月19日在面板包偶然发可以免费申请测评GD32VF103开发板,欣喜万分:在这之前各大技术论坛说是已经有国产兆易创新的RISCV指令集的MCU发布的事情,一时间摩拳擦掌想购入一 ...
- C# 面试编程算法题
求以下表达式的值: 1. 1 - 2 + 3 - 4 + … + m public static int Foo1(int m) { ; ; i <= m; i++) { == ) { sum ...
- 2_1 aabb
输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相同).
- python 编程的 Style Guide
Python 的作者既优雅又高冷又 鬼毛的 再 PEP8 里规定了 Python 程序编写规范.(风格和格式) 一.基本观念 1.可读性之上,代码被读的次数肯定比被写的次数多.因此作者十分重视代码的可 ...
- 【渗透测试】Squirrelmail远程代码执行漏洞+修复方案
最近网上有点不太平,爆出各种漏洞,等下会把近期的漏洞复现一下,发出来.安全圈的前辈总是默默的奉献,在这里晚辈们只能站在巨人的肩膀上,跟紧前辈们的步伐,走下去. -------------------- ...