找回密码
 中文实名注册
查看: 109|回复: 0

[NOIP2009 普及组] 分数线划定

[复制链接]

702

主题

1094

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
22146
发表于 2024-9-14 15:13:48 | 显示全部楼层 |阅读模式
[C++] 纯文本查看 复制代码
#include <iostream>        // 包含输入输出流库,用于输入输出功能#include <vector>          // 包含向量容器库,用于使用vector#include <algorithm>       // 包含算法库,用于使用sort函数
using namespace std;       // 使用标准命名空间,省去std::前缀
// 定义一个结构体来表示选手struct Candidate {    int id;     // 报名号    int score;  // 笔试成绩};
// 比较函数,用于排序bool compare(const Candidate &a, const Candidate &b) {    if (a.score == b.score) {        // 如果两个候选人得分相同        return a.id < b.id;          // 按照id升序排序    }    return a.score > b.score;        // 否则按照得分降序排序}
int main() {    int n, m;                        // n为候选人数量,m为计划面试人数    cin >> n >> m;                   // 从标准输入读入n和m的值
    vector<Candidate> candidates(n); // 创建一个大小为n的vector存储候选人信息
    // 读取所有选手的信息    for (int i = 0; i < n; ++i) {        cin >> candidates[i].id >> candidates[i].score; // 读取每个候选人的id和成绩    }
    // 按照成绩从高到低排序,成绩相同则按报名号升序排序    sort(candidates.begin(), candidates.end(), compare); // 使用自定义的compare函数进行排序
    // 计算面试分数线的索引    int thresholdIndex = m * 1.5; // m的1.5倍向下取整,得到分数线的索引
    // 获取面试分数线    int interviewScoreLine = candidates[thresholdIndex - 1].score; // 分数线是索引处的候选人得分
    // 统计实际进入面试的选手数量    int actualInterviewCount = 0; // 初始化计数器    for (const auto &candidate : candidates) { // 遍历所有候选人        if (candidate.score >= interviewScoreLine) { // 如果候选人分数大于等于分数线            actualInterviewCount++; // 增加计数        } else {            break; // 如果遇到分数低于分数线的,直接跳出循环        }    }
    // 输出面试分数线和实际进入面试的选手数量    cout << interviewScoreLine << " " << actualInterviewCount << endl;
    // 输出所有进入面试的选手信息    for (int i = 0; i < actualInterviewCount; ++i) { // 对于所有进入面试的候选人        cout << candidates[i].id << " " << candidates[i].score << endl; // 输出其id和得分    }
    return 0; // 程序结束}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 中文实名注册

本版积分规则

小黑屋|东台市机器人学会 ( 苏ICP备2021035350号-1;苏ICP备2021035350号-2;苏ICP备2021035350号-3 )

GMT+8, 2024-11-21 17:34 , Processed in 0.037448 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表