信息奥赛一本通(1180:分数线划定)——插入排序
1180:分数线划定
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 15750 通过数: 7408
【题目描述】
世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取mm名志愿者,则面试分数线为排名第m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。
现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。
【输入】
第一行,两个整数n,m(5≤n≤5000,3≤m≤n)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个人进入面试。
【分析】
插入排序思想:回忆一下打牌时抓牌的情景,为了方便打牌,抓牌时,一般一边抓牌一边按花色和大小插入恰当的位置。当读入一个元素时,在已经排序好的序列中,搜寻正确的位置,再放入读入的元素,但不应该忽略一个重要的问题:在插入这个元素前,应当先将它后面的所有元素后移一位,以保证插入位置的原元素不被覆盖。
【参考代码】
#include <stdio.h>
#define N 5010
struct node
{
int num;
int score;
}stu[N],t;
void insertion_Sort(struct node x[],int n)
{
int i,j,k;
for(i=0;i<n;i++)
{
for(j=i-1;j>=0;j--) //前面有序区间中为x[i]找合适的插入位置
{
if(x[j].score > x[i].score) //找到比x[i]大的位置就退出,插入其前面
break;
else if(x[j].score==x[i].score && x[j].num < x[i].num)
break;
}
if(j!=i-1)
{
t=x[i]; //将比x[i]小的数据向后移
for(k=i-1;k>j;k--)
x[k+1]=x[k]; //将x[i]放在正确位置上
x[k+1]=t;
}
}
}
int main()
{
int i,j,n,m,f;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
scanf("%d%d",&stu[i].num,&stu[i].score);
insertion_Sort(stu,n);
f=m*1.5;
while(stu[f].score==stu[f-1].score)
{
f++;
}
printf("%d %d\n",stu[f-1].score,f);
for(i=0;i<f;i++)
printf("%d %d\n",stu[i].num,stu[i].score);
return 0;
}
http://ybt.ssoier.cn:8088/problem_show.php?pid=1180
信息奥赛一本通(1180:分数线划定)——插入排序相关推荐
- 信息奥赛一本通的递推练习
信息奥赛一本通的递推练习 递推与动态规划 1313:位数问题 1314:过河卒 1194:移动路线 1196:踩方格 递推与动态规划 递推解决的问题中满足最优化原理的也是属于动态规划范畴 1313:位 ...
- 【算法•日更•第十二期】信息奥赛一本通1585:【例 1】Amount of Degrees题解
废话不多说,直接上题: 1585: [例 1]Amount of Degrees 时间限制: 1000 ms 内存限制: 524288 KB 提交数: 130 通过数: 68 ...
- 信息奥赛一本通 三角形最佳路径问题 (1288) 题解
信息奥赛一本通 三角形最佳路径问题 (1288) 题解 时间限制: 1000 ms 内存限制: 65536 KB 题目描述 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 ...
- 信息学奥赛一本通 1180 | 1946:【09NOIP普及组】分数线划定 | OpenJudge NOI 1.10 05 | 洛谷 P1068 [NOIP2009 普及组] 分数线划定
[题目链接] ybt 1180:分数线划定 ybt 1946:[09NOIP普及组]分数线划定 OpenJudge NOI 1.10 05:分数线划定 洛谷 P1068 [NOIP2009 普及组] ...
- 2038:最大数位置(题目来源于信息奥赛一本通官网)
2038:[例5.5]最大数位置 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 4876 通过数: 3175 [题目描述] 输入n 个整数,存放在数组a[ ...
- HOJ 系统常用功能介绍 部署快速入门 c++ python java编程语言在线自动评测 信息奥赛一本通 USACO GESP 洛谷 蓝桥 CSP NOIP题库
技术支持微 makytony 服务器配置需求 腾讯云 2H4G 5M 60GB 轻量应用服务器 承载大约 200~400人使用,经过压力测试,评测并发速度可满足130人左右的在线比赛. 系统镜像选 ...
- 【算法•日更•第十四期】信息奥赛一本通1592:【例 1】国王题解
废话不多说,直接上题: 1592:[例 1]国王 时间限制: 500 ms 内存限制: 65536 KB 提交数: 290 通过数: 111 [题目描述] 原题来自:SGU 2 ...
- 信息奥赛一本通1486: CH 6202 黑暗城堡 最短路径生成树计数
1486:黑暗城堡 [题目描述] 知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设 Di为如果所有的通道都被修建,第 i 号房间与第 1 ...
- 信息奥赛一本通(1325:【例7.4】 循环比赛日程表)
1325:[例7.4] 循环比赛日程表 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6257 通过数: 3483 [题目描述] 设有N个选手进行循环比赛 ...
最新文章
- 阿里巴巴发送短信接口的使用
- HttpHandler浅析
- 7天拿到阿里安卓岗位offer,附高频面试题合集
- 中国传媒大学计算机学院夏令营,中国传媒大学夏令营
- paip.xdebug 配置attilax总结.txt
- micoolcoder 验证码 for php v1.0 全字符版,Micoolcoder 验证码 for PHP v1.0 全字符版
- 数据库在线自生成ER图
- 计算机网络推荐,计算机网络 | CCF推荐 | 国际会议信息4条
- 根服务器修改密钥,更改 SQL Server 实例的服务主密钥
- 如何在PLSQL上使用Oracle
- TwinCAT-C++基础
- 汇编实验二——选出非负数以及排序
- “NoSuchBeanDefinitionException: No qualifying bean of type”问题解决
- 用计算机判断函数单调性吗,判断函数单调性的常用方法
- oracle OCP考点在哪,Oracle OCP认证考哪几门
- Jquery实现大于等于且小于等于-遁地龙卷风
- 《Microduino实战》——3.1 准备开发环境
- 学计算机买笔记本r5还是i5,电脑处理器r5和i5哪个好
- 使用HttpClient和Jsoup爬取京东商城关键字搜索的商品页面
- web页面调用打印机不预览直接执行打印
热门文章
- git add 所有修改文件_Git管理修改、撤销和删除文件
- python合并两个excel文件_利用Python将多个excel文件合并为一个文件
- 双非院校非科班的学弟,刚刚拿到了腾讯、网易、美团等大厂Offer
- 这两天有点热吆,star直线上涨!~Jeecg Boot
- linux redhat 下让redis以服务方式运行
- ueditor1_4_3-utf8-jsp 配置实现上传图片的功能
- P3-weixin-2.0.0版本发布(微信插件式开发框架)
- JEECG 技术交流群
- 全面认识UML-类图元素(java)
- 用户管理实用命令(第二版)