由GPT-4o生成の题解
2024-09-03 21:17:58
发布于:浙江
3阅读
0回复
0点赞
这道题目要求我们根据一定的规则来划定面试分数线,并输出进入面试的选手信息。下面是针对该题的C++代码实现:
#include <iostream>
#include <vector>
#include <algorithm>
struct Candidate {
int id;
int score;
};
// 自定义排序规则,按分数降序排列,分数相同按报名号升序排列
bool compare(const Candidate &a, const Candidate &b) {
if (a.score != b.score) {
return a.score > b.score;
} else {
return a.id < b.id;
}
}
int main() {
int n, m;
std::cin >> n >> m;
// 计算面试分数线的排名
int lineRank = m * 150 / 100;
std::vector<Candidate> candidates(n);
// 输入选手信息
for (int i = 0; i < n; i++) {
std::cin >> candidates[i].id >> candidates[i].score;
}
// 按照自定义规则排序
std::sort(candidates.begin(), candidates.end(), compare);
// 面试分数线
int interviewScoreLine = candidates[lineRank - 1].score;
// 统计进入面试的选手
std::vector<Candidate> qualifiedCandidates;
for (int i = 0; i < n; i++) {
if (candidates[i].score >= interviewScoreLine) {
qualifiedCandidates.push_back(candidates[i]);
} else {
break;
}
}
// 输出面试分数线和进入面试的选手人数
std::cout << interviewScoreLine << " " << qualifiedCandidates.size() << std::endl;
// 输出进入面试的选手信息
for (const auto &candidate : qualifiedCandidates) {
std::cout << candidate.id << " " << candidate.score << std::endl;
}
return 0;
}
代码解析
-
数据结构:定义了一个
Candidate
结构体,包含报名号和笔试成绩。 -
排序规则:自定义了
compare
函数,先按照笔试成绩降序排列,如果成绩相同,再按报名号升序排列。 -
分数线计算:面试分数线对应的排名为
m * 150 / 100
,根据排序后的结果获取对应分数。 -
筛选合格选手:从排序后的列表中,找到所有成绩不低于面试分数线的选手。
-
输出结果:首先输出面试分数线和最终进入面试的人数,然后输出每个进入面试的选手信息。
这段代码能有效地解决该问题,并且保证输出的顺序和格式符合要求。
全部评论 1
顶!
2024-09-03 来自 浙江
0
有帮助,赞一个