1137. Final Grading (25)
发布日期:2021-05-04 09:01:55 浏览次数:27 分类:精选文章

本文共 1483 字,大约阅读时间需要 4 分钟。

#include 
#include
#include
using namespace std;
struct Node {
string sid;
int gp, gm, gf, g;
Node(int p, int m, int f) : gp(p), gm(m), gf(f) {}
};
map
mp;
bool cmp(Node a, Node b) {
if (a.g == b.g)
return a.sid < b.sid;
return a.g > b.g;
}
int main() {
int p, m, n;
ios::sync_with_stdio(false);
cin >> p >> m >> n;
string sid;
int score;
for (int i = 0; i < p; ++i) {
cin >> sid >> score;
mp[sid] = Node(score, -1, -1);
}
for (int i = 0; i < m; ++i) {
cin >> sid >> score;
auto it = mp.find(sid);
if (it != mp.end()) {
it->second.gm = score;
} else {
mp[sid] = Node(-1, score, -1);
}
}
for (int i = 0; i < n; ++i) {
cin >> sid >> score;
auto it = mp.find(sid);
if (it != mp.end()) {
it->second.gf = score;
} else {
mp[sid] = Node(-1, -1, score);
}
}
vector
v;
for (auto &x : mp) {
Node &y = x.second;
if (y.gp < 200)
continue;
Node e = y;
e.sid = x.first;
e.g = (e.gm > e.gf) ? 0.4 * e.gm + 0.6 * e.gf + 0.5 : e.gf;
if (e.g >= 60) {
v.push_back(e);
}
}
sort(v.begin(), v.end(), cmp);
for (auto &x : v) {
cout << x.sid << " " << x.gp << " " << x.gm << " " << x.gf << " " << x.g << endl;
}
return 0;
}
上一篇:1136. A Delayed Palindrome (20)
下一篇:1138. Postorder Traversal (25)

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月06日 05时00分15秒