当前位置:网站首页>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
边栏推荐
猜你喜欢
随机推荐
C语言中国象棋源码以及图片
2022-07-18 第五小组 瞒春 学习笔记
【js手风琴效果案例】
为什么四个字节的float表示的范围比八个字节的long表示的范围要广
“绿色低碳+数字孪生“双轮驱动,解码油气管道站升级难点 | 图扑软件
集成电路实践----D触发器
使用 docker 搭建 redis-cluster 集群
PAT Class A 1078 Hash
Redis最新6.27安装配置笔记及安装和常用命令快速上手复习指南
遍历堆 PAT甲级 1155 堆路径
李开复花上千万投的缝纫机器人,团队出自大疆
2022-07-25 第六小组 瞒春 学习笔记
第六章-6.1-堆-6.2-维护堆的性质-6.3-建堆
PAT甲级 1143 最低公共祖先
PAT Class A 1145 Hash - Average Lookup Time
2022-07-19 第五小组 瞒春 学习笔记
idea使用jdbc对数据库进行增删改查,以及使用懒汉方式实现单例模式
HDU1561 树形背包dp+边界优化 0ms过题
Redis的5中数据类型总结
如何正确且快速的清楚C盘!!释放C盘空间内存保姆级教程