对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分(满分100)。总评成绩的计算公式为 0,如果 G​mid−term​​>G​final​​;否则总评 G 就是 G​final​​。这里 G​mid−term​​ 和 G​final​​ 分别为学生的期中和期末成绩。

现在的问题是,每次考试都产生一张独立的成绩单。本题就请你编写程序,把不同的成绩单合为一张。

输入格式:

输入在第一行给出3个整数,分别是 P(做了在线编程作业的学生数)、M(参加了期中考试的学生数)、N(参加了期末考试的学生数)。每个数都不超过10000。

接下来有三块输入。第一块包含 P 个在线编程成绩 G​p​​;第二块包含 M 个期中考试成绩 G​mid−term​​;第三块包含 N 个期末考试成绩 G​final​​。每个成绩占一行,格式为:学生学号 分数。其中学生学号为不超过20个字符的英文字母和数字;分数是非负整数(编程总分最高为900分,期中和期末的最高分为100分)。

输出格式:

打印出获得合格证书的学生名单。每个学生占一行,格式为:

学生学号 G​p​​ G​mid−term​​ G​final​​ G

如果有的成绩不存在(例如某人没参加期中考试),则在相应的位置输出“−”。输出顺序为按照总评分数(四舍五入精确到整数)递减。若有并列,则按学号递增。题目保证学号没有重复,且至少存在1个合格的学生。

输入样例:

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

输出样例:

missing 400 -1 99 99
ydjh2 200 98 82 88
dx86w 220 88 81 84
wehu8 300 55 84 84
#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;struct Node{string name;int gp,gm,gf,g;
}node;bool cmp(Node a,Node b){return a.g != b.g ? a.g > b.g : a.name < b.name;
}int main(){map<string,int>idx; //to judge whether the student exists or notvector<Node> ans,stu;int p,n,m;cin >> p >> m >> n;string s;int score,cnt = 1;for(int i = 0; i < p; i++){cin >> s >> score;if(score >= 200){node.name = s;node.gp = score;node.gm = -1;node.gf = -1;node.g = 0;stu.push_back(node);idx[s] = cnt++;}} for(int i = 0; i < m; i++){cin >> s >> score;if(idx[s] != 0){stu[idx[s] - 1].gm = score;}}for(int i = 0; i < n; i++){cin >> s >> score;if(idx[s] != 0){int temp = idx[s] - 1;stu[temp].gf = score;stu[temp].g = score;if(stu[temp].gm > stu[temp].gf)stu[temp].g = int(stu[temp].gm * 0.4 + score * 0.6 + 0.5);}}for(int i = 0; i < stu.size(); i++){if(stu[i].g >= 60) ans.push_back(stu[i]);}sort(ans.begin(),ans.end(),cmp);for(int i = 0; i < ans.size(); i++){printf("%s %d %d %d %d\n",ans[i].name.c_str(),ans[i].gp,ans[i].gm,ans[i].gf,ans[i].g);}return 0;
}

转载于:https://www.cnblogs.com/wanghao-boke/p/10424589.html

1080 MOOC期终成绩 (25 分)相关推荐

  1. 【PAT乙】1080 MOOC期终成绩 (25分)

    problem 1080 MOOC期终成绩 (25分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格 ...

  2. PAT | 1080 MOOC期终成绩 (25分)【附柳神代码】

    1080 MOOC期终成绩 (25分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格证书,必须首先获 ...

  3. 1080 MOOC期终成绩 (25 分) java 题解

    题目描述: 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作 ...

  4. 【详细解析】1080 MOOC期终成绩 (25分)_45行代码AC

    立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想 ...

  5. 【PAT乙级】1080 MOOC期终成绩 (25 分)

    题目地址 #include<bits/stdc++.h> using namespace std; int n,m,k; struct node {int a,b,c,d; string ...

  6. 1080. MOOC期终成绩 (25)-PAT乙级真题

    对于在中国大学MOOC(http://www.icourse163.org/)学习"数据结构"课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评 ...

  7. PAT乙级1080:MOOC期终成绩(25)

    题目 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分, ...

  8. PAT (Basic Level) 1080 MOOC期终成绩(模拟+stl)

    题目链接:点击查看 题目大意:分别给出a个学生的编程分数,b个学生的期中考试成绩,c个学生的期末考试成绩,有几个规则: 总评为: 若期中考试成绩大于期末考试成绩: 否则: 合格的定义是编程分数大于等于 ...

  9. 7-56 互评成绩 (25 分) (排序题)

    7-56 互评成绩 (25 分) 学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩.系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩.本题就 ...

最新文章

  1. Spotify如何对Apache Storm进行规模扩展
  2. Portlet开发指南第二章
  3. Terraform 多云管理工具
  4. mysql触发器行锁_MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
  5. vscode调试angular2
  6. Atitit.木马病毒websql的原理跟个设计
  7. 1.2 DICOM成像协议剖析
  8. 用计算机信息术语感恩老师,感恩老师的祝福语(精选50句)
  9. 常用的四大绩效考核方法以及优缺点
  10. 电子科技大学计算机学院拟录取,2021年电子科技大学硕士研究生拟录取名单
  11. Restful API设计指南
  12. 年轻人还记得KCP吗?什么是KCP,怎么使用呢!!!
  13. 华为HMS全球应用创新大赛启动 百万美元奖金激励开发者
  14. 万物互联大时代,物联网的基础技术有哪些?
  15. CCS安装失败的原因
  16. 优秀课件笔记之计算机网络基础
  17. 怎么给word文档注音_请教如何在WORD文档中给汉语拼音加上声调?
  18. 值班排班日历插件引入 参考
  19. python 外星人游戏怎么打开_Python外星人入侵游戏开发—创建游戏窗口
  20. [pytorch] PyTorch Metric Learning库代码学习二 Inference

热门文章

  1. jquery的动画学习--jquery权威指南
  2. Oracle-数据实现竖排打印
  3. 一款jQuery立体感动态下拉导航菜单特效
  4. SQL 异常处理 Begin try end try begin catch end catch--转
  5. 华中师范大学邮箱matlab,18春[华中师范大学]华师《Matlab基础与应用》在线作业1(100分)...
  6. mysql 5.7 udf http_mysql下mysql-udf-http效率测试小记
  7. linux c实现一个简单的sniffer
  8. 服务器共享文件审计,内网安全管理系统-共享审计
  9. android程序到处apk,导出已安装到手机中程序的apk文件
  10. Java——获取和设置多线程的名称