题目描述
有n个人参加了期末考试,为了检测大家真正的学习成绩老师决定对于成绩好的同学进行第二轮测试,当然不是每个人都有进入第二轮的机会,这里有个根据期末考试分数制定的晋级规则:

1)分数高的优先晋级

2)至多只能允许k个人晋级下一轮

3)为了保证公平分数相同的人要么一起晋级要么一起出局

老师最近很忙不知道最终到底有多少人可以晋级下一轮而且晋级的最低分数是多少.作为优秀的程序员这个任务当然就交给你来完成了!

输入
第一行是一个数T(T<=100),表示有T组测试数据。

每组测试样例的第一行是两个数n 和k(1<=k<=n<=10000)代表参加考试的总人数和至多能晋级的总人数.

然后接下来一行有n个数字s代表每个学生的考试分数(1<=s<=100).

输出
对于每组测试数组,首先输出"Case #X: ",X代表测试用例的编号(具体可参见sample output), 然后输出两个整数sum, min,表示可以晋级多少人和最低的晋级分数.如果无人能晋级则输出两个-1。

样例输入
3
1 1
5
10 7
1 2 3 4 5 6 7 8 9 10
10 2
1 1 2 3 3 4 4 5 5 5
样例输出
Case #1: 1 5
Case #2: 7 4
Case #3: -1 -1
提示
来源


解析:这道题比较费时间的地方在于考虑的事情比较多,进入代码解析吧~

import java.util.*;
public class Main {public static void main(String[] args){Scanner sc=new Scanner(System.in);while(sc.hasNext()){int n=sc.nextInt();for (int i = 0; i <n ; i++) {int Totalnumber=sc.nextInt();//参加考试的总人数int [] a=new int[Totalnumber];//建立数组存放成绩int Enrolment=sc.nextInt();//输入最多可以录取的人数int Max=0;//存放最高成绩for (int j = 0; j <Totalnumber; j++) {a[j]=sc.nextInt();if(a[j]>=Max) Max=a[j];//存放最高成绩}Arrays.sort(a);//方法,快排;int s=0;//存放高分的人数int k=0;//存放分数重复的人的个数int Max2=0;//Max会在最高分的人数不满足需求的时候改为次高分,这时用来保存最大值(Max),防止次高分人数过多时候舍去次高分的人时返回原先的录取分数;for (int j = Totalnumber-1; j >=0; j--) {//排序后最大值在最后,所以用倒序循环;if(a[j]==Max){s++;k++;if(s>Enrolment)//如果过多,直接返回-1;{fuction(i+1,-1,-1);break;}if(s==Enrolment)//如果人数满足所需要的人数;{if(j!=0){//j!=0代表循环没有到最后一个数;if (a[j-1]!=a[j]){fuction(i+1,Enrolment,Max);break;}else if (a[j-1]==a[j]){fuction(i+1,Enrolment-k,Max2);break;}}else if(Enrolment==Totalnumber) {fuction(i+1,Enrolment,Max);break;}//代表判断最后一个数是否满足需要,最后一个数需要单独拿出来判断,如果继续用a[j-1]==a[j]会造成数组的溢出,因为a[0]不能和a[-1]比较吧;}}else {Max2=Max;Max=a[j];j++;k=0;//清空原Max的个数,因为执行这条代码时候一定是和Max等价的值不够用了;}}}}}public static void fuction(int i,int a,int b){  if(a!=0 && b!=0) System.out.println("Case #"+i+": "+a+" "+b);else System.out.println("Case #"+i+": "+-1+" "+-1);}}

这道题在我的学校的oj上面通过了,如果有写的不对的地方或者有更优的算法,欢迎在评论里指出;
2020年2月14日第一次修改;

1148: 考试晋级(java版)相关推荐

  1. CSP:CSP认证考试:202012-1(期末预测之安全指数)满分答案,Java版

    CSP:CSP认证考试:202012-1(期末预测之安全指数)满分答案,Java版 一.题目: 二.Java满分答案 import java.util.Scanner;public class Mai ...

  2. CSP:CSP认证考试:202104-1(灰度直方图)满分答案,Java版

    CSP:CSP认证考试:202104-1(灰度直方图)满分答案,Java版 一.题目: 二.Java满分答案 import java.util.ArrayList; import java.util. ...

  3. CSP:CSP认证考试:202109-2(非零段划分)70分答案,Java版

    CSP:CSP认证考试:202109-2(非零段划分)70分答案,Java版 一.题目: 二.Java70分答案 import java.util.ArrayList; import java.uti ...

  4. CSP:CSP认证考试:202109-1(数组推导)满分答案,Java版

    CSP:CSP认证考试:202109-1(数组推导)满分答案,Java版 一.题目: 二.Java满分答案 import java.util.ArrayList; import java.util.S ...

  5. 我的世界java版袭击图片_我的世界:你mc“中毒”有多深?这8张图都能看懂,绝对是真爱粉...

    MC玩家特别喜欢用各种趣图来展示MC的内容,每当有人发出一张有趣图片的时候,必定会得到一大堆玩家的响应.MC趣图除了给我们带来快乐之外,还引发我们的深思,从游戏到生活,MC一个不落.这可能就是mc的魅 ...

  6. 20165234 [第二届构建之法论坛] 预培训文档(Java版) 学习总结

    [第二届构建之法论坛] 预培训文档(Java版) 学习总结 我通读并学习了此文档,并且动手实践了一遍.以下是我学习过程的记录~ Part1.配置环境 配置JDK 原文中提到了2个容易被混淆的概念 JD ...

  7. 程序设计天梯赛——T1(15分)java版

    程序设计天梯赛--java版 文章目录 程序设计天梯赛--java版 3-个位数统计 输入格式: 输出格式: 输入样例: 输出样例: 5-考试座位号 输入格式: 输出格式: 输入样例: 输出样例: 1 ...

  8. 微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-翟东平-专题视频课程...

    微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-2445人已学习 课程介绍         微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识. 微信小 ...

  9. 视频教程-微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-微信开发

    微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试 ...

最新文章

  1. 16、mybatis动态sql 批量插入
  2. Java演示手机发送短信验证码功能实现
  3. sqlserver2012——XML查询
  4. 加入鹅厂,就趁现在!
  5. 深度学习样本归一化到[0,1]还是[-1,1]
  6. Linux kmalloc/kfree 源码解读
  7. 软件项目需求开发过程实践之软件需求说明书
  8. 思科CCNP认证介绍
  9. CF - 659B. Qualifying Contest 排序+字符串
  10. 【mysql】In aggregated query without GROUP BY, expression #1 of SELECT list contains ......
  11. 记2021春季PAT乙级考试题解
  12. js和html:周岁年龄计算器
  13. 中国免疫抑制剂药物市场趋势报告、技术动态创新及市场预测
  14. DNS协议与请求的C语言实现
  15. Mac上QQ电话录音
  16. 一键重装系统可靠吗?快启动一键重装怎么样?
  17. WiFi 5Ghz信道表
  18. 【转】普通贴-论坛细节关乎成败! “电子邮件礼仪”知多少
  19. 2022-2028年全球及中国药片压片机行业发展现状调研及投资前景分析
  20. 大端小端模式(俗称大尾小尾模式)

热门文章

  1. 圆与圆的位置关系题目含答案_直线和圆的位置关系练习题附答案
  2. 如何在MySQL中创建视图
  3. 蓄能空调系统技术特点及应用实训QY-ZLR23
  4. 请编写一个函数,接收两颗星星赤经和赤纬的角度作为参数,计算并返回这两颗星星所对弧的角度。
  5. JDK11安装教程(WIN10)
  6. 泰戈尔诗集-飞鸟集单词释义
  7. Spark与Iceberg整合查询操作-查询快照,表历史,data files Manifests 查询快照,时间戳数据...
  8. 五位来自五大洲的杰出女性荣获联合国教科文组织“世界杰出女科学家成就奖” | 周末...
  9. 二项分布均值,方差推导
  10. 万丰科技机器人排名_中国机器人公司排名是怎样的?