2022天梯赛总决赛(L1-8 静静的推荐)

天梯赛结束后,某企业的人力资源部希望组委会能推荐一批优秀的学生,这个整理推荐名单的任务就由静静姐负责。企业接受推荐的流程是这样的:

  • 只考虑得分不低于 175 分的学生;
  • 一共接受 K 批次的推荐名单;
  • 同一批推荐名单上的学生的成绩原则上应严格递增;
  • 如果有的学生天梯赛成绩虽然与前一个人相同,但其参加过 PAT 考试,且成绩达到了该企业的面试分数线,则也可以接受。

给定全体参赛学生的成绩和他们的 PAT 考试成绩,请你帮静静姐算一算,她最多能向企业推荐多少学生?

输入格式:

输入第一行给出 3 个正整数:N(105)为参赛学生人数,K(5×103)为企业接受的推荐批次,S(100)为该企业的 PAT 面试分数线。

随后 N 行,每行给出两个分数,依次为一位学生的天梯赛分数(最高分 290)和 PAT 分数(最高分 100)。

输出格式:

在一行中输出静静姐最多能向企业推荐的学生人数。

输入样例:

10 2 90
203 0
169 91
175 88
175 0
175 90
189 0
189 0
189 95
189 89
256 100
 

输出样例:

8
 

样例解释:

第一批可以选择 175、189、203、256 这四个分数的学生各一名,此外 175 分 PAT 分数达到 90 分的学生和 189 分 PAT 分数达到 95 分的学生可以额外进入名单。第二批就只剩下 175、189 两个分数的学生各一名可以进入名单了。最终一共 8 人进入推荐名单。

 

当时这(阅读理解)题,我是真横竖没看懂,乱写了一堆才骗到一点分。  赛后看了大佬的代码,真是醍醐灌顶,女少!

用到了数组计数器:

复制代码
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int cnt[291]; // 记录每个分数出现的次数
 5 
 6 int main ()
 7 {
 8     int n, k, s;
 9     cin >> n >> k >> s;
10 
11     int ans = 0;
12     while (n--)
13     {
14         int tt, pat;
15         cin >> tt >> pat;
16 
17         if ( tt >= 175 ) 
18             if ( pat >= s ) // 根据题目的最多推荐,同时满足 天梯赛 和 PAT 分数要求的人不计入数组
19                 ans++;
20             else if ( cnt[tt] < k ) // 防止人数超过k的批次
21             {
22                 ans++;
23                 cnt[tt]++;
24             }
25     }
26 
27     cout << ans;
28     return 0;
29 }
复制代码

 

posted @   xuyuanxin  阅读(823)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示