原题链接:1041. 志愿者选拔

时间限制: 1000 ms  空间限制: 262144 KB  具体限制

题目描述

世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。
现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

输入

第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的志愿者人数。输入数据保证m*150%向下取整后小于等于n。
第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。数据保证选手的报名号各不相同。

输出

第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。
从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。

样例输入

6 3
1000 90
3239 88
2390 95
7231 84
1005 95
1001 88

样例输出

88 5
1005 95
2390 95
1000 90
1001 88
3239 88

提示

m*150% = 3*150% = 4.5,向下取整后为4。保证4个人进入面试的分数线为88,但因为88有重分,所以所有成绩大于等于88的选手都可以进入面试,故最终有5个人进入面试。

题记:

我把选手的报名号、笔试成绩定义在一个结构体里,使用C++库函数sort。

个人认为是最好的做法。

sort的类似用法的题:CCF NOI1042. 发奖学金【sort】

C++程序如下:

#include <iostream>
#include <algorithm>using namespace std;
const int N=5000;struct people{int k;  //报名号 int s;  //笔试成绩
};int cmp(const people &a, const people &b){if(a.s != b.s)return a.s > b.s;elsereturn a.k < b.k;
}int main()
{int n, m, pass_number;cin >> n >> m;people p[n];pass_number = m * 1.5;for(int i=0; i<n; i++)cin >> p[i].k >> p[i].s ;sort(p, p+n, cmp); //按要求排序for(int i=pass_number; i<n; i++){if(p[i].s == p[pass_number-1].s)pass_number ++;elsebreak;} //考虑分数在及格线的选手有多名的情况 cout << p[pass_number-1].s << " " << pass_number << endl;for(int i=0; i<pass_number; i++){cout << p[i].k << " " << p[i].s << endl;}return 0;
}

CCF NOI1041. 志愿者选拔【sort】相关推荐

  1. CCF NOI1041 志愿者选拔

    问题链接:CCF NOI1041 志愿者选拔. 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A市对所 ...

  2. FZU 1894 志愿者选拔

    Problem 1894 志愿者选拔 Accept: 2308 Submit: 7003 Time Limit: 1500 mSec Memory Limit : 32768 KB Problem D ...

  3. CCF NOI 1041.志愿者选拔

    题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根据计划录取人数的150%划定,即 ...

  4. 全国计算机noi,【坑爹】中国计算机学会关于CCF NOI省内选拔的若干规定

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 为规范各省参加CCF NOI(以下简称NOI)选手的选拔方式,中国计算机学会特制定如下规则. 1.省选是各省选拔参加NOI选手的必要环节,各省必须组织省选 ...

  5. 暑期训练狂刷系列——Foj 1894 志愿者选拔 (单调队列)

    题目连接: http://acm.fzu.edu.cn/problem.php?pid=1894 解题思路: 因为出队和入队都满足队列的性质,优先单调队列的优先级有进入队列的顺序和人品的高低,在一段区 ...

  6. FZU 1894 志愿者选拔 - 单调队列

    题目描述 分析: 暴力肯定过不了.维护一个从大到小的单调队列. 想清楚这些事: 1. 如果前面有人的val比当前加入队伍的人的val小,那么前面那个人的val永远对答案没有贡献,可以删去. 2. 再有 ...

  7. FOJ1897志愿者选拔

    如果是Q命令,则判断当前队列中是否仍有元素,如果没有则输出-1,如果有则直接输出队首. 如果是G命令,则对last加1,之后对于队列中所有超出范围的前端元素进行出队操作.(该元素在原序列中的位置> ...

  8. 志愿者:一块最没有悬念的金牌

    志愿者:一块最没有悬念的金牌 黄宾 奥运会开幕前,闫春盛在窗前向往他的即将到来的志愿者生活 10万赛会志愿者,40万城市志愿者,100万社会志愿者以及20万拉拉队志愿者,北京举行的这第29届奥运会无疑 ...

  9. 博弈论(Bash博弈、Nim博弈、SG函数、组合博弈)

    组合博弈入门 一.博弈论三条性质: 终结点为P点 P点只能到N点 N点至少有一种途径到P点 N:必胜态 P:必败态    1.引导题 1846 Brave Game 题目大意: n个石子两人轮流取1~ ...

最新文章

  1. vscode创建工作区_区领导调研工业区高楼村乡村振兴示范村创建工作!
  2. Java----代码优化篇
  3. nowcoder 河 我 车 题 错 天 乐 赛 倍增处理
  4. (一)Neo4j在Centos7虚拟机上的安装
  5. SpriteBuilder物理对象的父子关系
  6. 针织erp_编程源于我们长期的针织工作
  7. Java面试题:final修饰的对象,有几种初始化方式
  8. Navicat 教程:排序、查找或替换记录
  9. vue 数组遍历方法forEach和map的原理解析和实际应用
  10. Atitit 音频资源管理法 与教程 音频资源分类法 卡拉ok功能 人声消除给你教程 Atitit 音频功能常见工具与类库 Atitit 调整播放速率 Atitit、 ffmpeg录音 atit
  11. Python3,selenium动态下载某库PPT文档,省下的钱可以撸串了!!!
  12. Top 10 JavaScript编辑器,你在用哪个?
  13. python实现pearson相关性检验
  14. 解决scala 2.10.X 无法导入 actors的问题
  15. Git报错:another git process seems to be running in this repository
  16. socket服务器显示未响应,QTCPSOCKET 客户端已连接 而服务器无响应
  17. 『处女作』3 年经验前端第一次跳槽面试总结
  18. 因代码泄密,苹果将在电脑上使用人脸识别
  19. 9.1 DEP机制的保护原理
  20. 为知笔记MathJax使用教程

热门文章

  1. 基于STM32F407实现快速傅里叶变化(FFT),计算指定频率的幅值
  2. 五 根据用户名和手机号进行查询操作
  3. Neo4j安装与配置
  4. CASS最强绘图插件信心工具箱免费下载使用
  5. 指纹解锁亮屏时间 分析
  6. excel 撤销工作表保护
  7. 请教股票曲线图的问题
  8. 考研高数学习篇之从复习试卷03-07
  9. 基于安卓Android的电子废弃物回收利用APP
  10. 安科瑞无线物联网智能电表ADW300指导性技术要求-Susie 周