L1-088 静静的推荐(得分20)

天梯赛L1-088传送门

本题没什么好讲,题干可以点击传送门查看

这一题主要是理解题意,然后有一个比较巧的地方就是同一分数段的只能招K个

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> t,p;
int main()
{
    int n,k,s;
    cin>>n>>k>>s;
    while(n--)
        {
            int tt,pp;cin>>tt>>pp;
            if(pp >= s && tt >= 175) p.push_back(pp);
            if(pp < s && tt >= 175) t.push_back(tt);
        }
    sort(t.begin(),t.end());
    int total = p.size();
    int t_size = t.size();
    for(int i = 0 ; i < t.size() ;)//如果加上if条件,这里的t.size()可以不变
        {
            int j = i;
            while(j < t.size() && t[j] == t[i]) j++;
            //同一个分数的人最多只能招k个
            total += min(k,j-i);
            i = j;
        }
    cout<<total;
    return 0;
}
posted @ 2026-03-10 14:58  shuiwangrenjia  阅读(1)  评论(0)    收藏  举报