当前位置:网站首页>PAT serie a 1137 final grades
PAT serie a 1137 final grades
2022-08-02 17:04:00 【keyboard sonata】
For students studying "Data Structures" in MOOCs of Chinese universities, in order to obtain a certificate, they must first obtain at least 200 points for online programming assignments, and then obtain at least 60 points in the overall evaluation (out of 100 points)).
The calculation formula of the overall evaluation score is G=(Gmid−term×40%+Gfinal×60%), if Gmid−term>Gfinal; otherwise, the overall evaluation G is Gfinal.
Here Gmid−term and Gfinal are the student's midterm and final grades, respectively.
The problem now is that each exam produces a separate report card.
This question asks you to write a program to combine different transcripts into one.
Input format
The input gives 3 integers on the first line, P (the number of students who did online programming assignments), M (the number of students who took the midterm exam), N (the number of students who took the final exam).Three blocks of input follow.
The first block contains P online programming grades Gp;
The second block contains M midterm test scores Gmid−term;
The third block contains N final exam scores Gfinal.
Each grade occupies one line, the format is: student number score.
Where Student ID is English letters and numbers with no more than 20 characters; Score is a non-negative integer (the maximum total score for programming is 900, and the maximum score for mid-term and final is 100).
Output Format
Prints out the list of students who have received certificates.One line for each student in the format:
Student Number Gp Gmid−term Gfinal G
If some grades do not exist (eg someone did not take the midterm exam), output "−1" in the corresponding position.The output order is in descending order of the total score (rounded to the nearest whole number).
If there is a tie, it will be incremented by student number.
The question ensures that the student number is not duplicated and that there is at least 1 qualified student.
Data Range
1≤P,M,N≤10000
Input Example:
6 6 7
01234 880
a1903 199
ydjh2 200
wehu8 300
dx86w 220
missing 400
ydhfu77 99
wehu8 55
ydjh2 98
dx86w 88
a1903 86
01234 39
ydhfu77 88
a1903 66
01234 58
wehu8 84
ydjh2 82
missing 99
dx86w 81
Example output:
missing 400 -1 99 99
ydjh2 200 98 82 88
dx86w 220 88 81 84
wehu8 300 55 84 84
My solution:
#include using namespace std;struct Student{string id;int p, m, f, s;Student(): p(-1), m(-1), f(-1), s(0){}void calc(){if(m > f) s = round(m*0.4 + f*0.6);else s = f;}bool operator< (const Student& t) const{if(s != t.s) return s > t.s;else{return id < t.id;}}};int main(){int p, m, n;cin >> p >> m >> n;unordered_map hash;string id;int s;for(int i = 0; i < p; i ++ ){cin >> id >> s;hash[id].id = id;hash[id].p = s;}for(int i = 0; i < m; i ++ ){cin >> id >> s;hash[id].id = id;hash[id].m = s;}for(int i = 0; i < n; i ++ ){cin >> id >> s;hash[id].id = id;hash[id].f = s;}vector students;for(auto per : hash){auto stu = per.second;stu.calc();if(stu.p >= 200 && stu.s >= 60) students.push_back(stu);}sort(students.begin(), students.end());for(auto re : students){cout << re.id << ' ' << re.p << ' ' << re.m << ' ' << re.f << ' ' << re.s << endl;}return 0;}
Harvest:
Structure constructor initialization: Student(): p(-1), m(-1), f(-1), s(0){}
Define the internal function of the structure
边栏推荐
猜你喜欢
随机推荐
语音直播系统——做好敏感词汇屏蔽打造绿色社交环境
2022-0801 第六小组 瞒春 学习笔记
nacos
学习编程的目标
兆骑科创创业赛事活动路演,高层次人才引进平台
【数据知多少】一文学懂通过Tushare、AKshare、baostock、Ashare、Pytdx获取股票行情数据(含代码)
马甲包接入过程记录
【Anaconda】一行语句解决Spyder启动问题
两分钟录音就可秒变语言通!火山语音音色复刻技术如何修炼而成?
PAT甲级 1145 哈希 - 平均查找时间
Servlet 技术2
【QMT】给QMT量化交易软件安装和调用第三方库(举例通达信pytdx,MyTT,含代码)
setTimeout与setInterval的区别
延时函数-定时器
【无标题】
C语言的基本程序结构详细讲解
双亲委派机制
EL 表达式 & JSTL 标签库
js电梯导航基础案例
基于mobileNet实现狗的品种分类(迁移学习)