20求助
查看原帖
20求助
1348393
goodsnack楼主2024/11/22 11:25
#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
struct person
{
    int id;
    int score;
};

int main()
{
    IOS;
    vector<person> v; // 存放面试的人
    int n, m;         // 报名笔试的人数 录取人数
    person a[5005];   // 报名信息
    cin >> n >> m;    // 报名笔试的人数 录取人数
    int line;         // 面试分数线

    for (int i = 0; i < n; i++) // 输入报名信息
    {
        cin >> a[i].id >> a[i].score;
        v.push_back(a[i]);
    }

    // 按照分数排序
    sort(v.begin(), v.end(), [](person a, person b)
         {
        if (a.score > b.score) {// 分数大的在前
            return a.score > b.score;
        } else if (a.score == b.score) {// 分数相同 按照id从小到大排序
            return a.id < b.id;
        }
        return false; });

    for (int i = 0; i < v.size(); i++) // 面试分数线
    {
        if (i == m)
        {
            line = v[m].score;
            break;
        }
    }

    for (int i = 0; i < v.size(); i++) // 去除分数低于面试分数线的人
    {
        if (v[i].score < line)
        {
            v.erase(v.begin() + i);
        }
    }

    cout << line << " " << v.size() << endl; // 输出面试分数线 面试人数
    for (int i = 0; i < v.size(); i++)       // 输出面试的人
    {
        cout << v[i].id << " " << v[i].score << endl;
    }
    return 0;
}
2024/11/22 11:25
加载中...