PTA 1080 MOOC期终成绩 (c++)
2019-08-19 10:31
1511 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44622401/article/details/99714890
1080 MOOC期终成绩 (25 分)
代码如下:来自柳神的这篇文章https://blog.csdn.net/liuchuo/article/details/79064649
#include <algorithm> #include <vector> #include <map> using namespace std; struct node { string name; int gp, gm, gf, g; }; bool cmp(node a, node b) { return a.g != b.g ? a.g > b.g : a.name < b.name; } map<string, int> idx; int main() { int p, m, n, score, cnt = 1; cin >> p >> m >> n; vector<node> v, ans; string s; for (int i = 0; i < p; i++) { cin >> s >> score; if (score >= 200) { v.push_back(node{s, score, -1, -1, 0}); idx[s] = cnt++; } } for (int i = 0; i < m; i++) { cin >> s >> score; if (idx[s] != 0) v[idx[s] - 1].gm = score; } for (int i = 0; i < n; i++) { cin >> s >> score; if (idx[s] != 0) { int temp = idx[s] - 1; v[temp].gf = v[temp].g = score; if (v[temp].gm > v[temp].gf) v[temp].g = int(v[temp].gm * 0.4 + v[temp].gf * 0.6 + 0.5); } } for (int i = 0; i < v.size(); i++) if (v[i].g >= 60) ans.push_back(v[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; }
相关文章推荐
- 1080. MOOC期终成绩 (25)(C++)
- C++ PAT乙 1080. MOOC期终成绩 (25)
- PAT basic-level 1080 MOOC期终成绩 笔记
- 1080. MOOC期终成绩 (25)
- PAT (Basic Level) Practice (中文)1080 MOOC期终成绩(C语言)
- 1080. MOOC期终成绩 (25)
- 1080. MOOC期终成绩
- PAT 1080. MOOC期终成绩 (25)
- Map 用法 PAT 1080. MOOC期终成绩 (25)
- PTA MOOC期终成绩
- pat甲级1137. Final Grading (25)、乙级1080. MOOC期终成绩 (25)
- 1080. MOOC期终成绩 (25)
- 1080. MOOC期终成绩
- PAT乙级 1080.MOOC期终成绩
- PAT 乙级 1080. MOOC期终成绩 (25)
- PAT B 1080 MOOC期终成绩 (C语言)
- PAT乙 1080 MOOC期终成绩 (测试4过3)
- PAT 1080. MOOC期终成绩(map按value排序)XFG!1K6CekAs
- PAT乙级1080: MOOC期终成绩
- 1080. MOOC期终成绩 (25) PAT乙级真题