Problem Description

今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑

每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的

考生,并将他们的成绩按降序打印。

Input

测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N

< 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一

名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号

(题目号由1到M)。

当读入的考生人数为0时,输入结束,该场考试不予处理。

Output

对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高

到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考

号的升序输出。

Sample Input

4 5 25

10 10 12 13 15

CS004 3 5 1 3

CS003 5 2 4 1 3 5

CS002 2 1 2

CS001 3 2 3 5

1 2 40

10 30

CS001 1 2

2 3 20

10 10 10

CS000000000000000001 0

CS000000000000000002 2 1 2

0

Sample Output

3

CS003 60

CS001 37

CS004 37

0

1

CS000000000000000002 20

题意:大水题!

练基础很适合!

  1. import java.util.Scanner;
  2. public class Main{
  3. public static void main(String[] args) {
  4. Scanner sc = new Scanner(System.in);
  5. while(sc.hasNext()){
  6. int n=sc.nextInt();
  7. if(n==0){
  8. return ;
  9. }
  10. int m = sc.nextInt();
  11. int g = sc.nextInt();
  12. int[] gm = new int[m+1];
  13. for(int i=1;i<gm.length;i++){
  14. gm[i]=sc.nextInt();
  15. }
  16. String[] str = new String[n];
  17. int k=0;
  18. String[] idstr = new String[n];
  19. int[] idn = new int[n];
  20. for(int i=0;i<n;i++){
  21. idstr[i] = sc.next();
  22. //System.out.println(id);
  23. idn[i] = sc.nextInt();
  24. int[] idnm = new int[idn[i]];
  25. int sum=0;
  26. for(int j=0;j<idn[i];j++){
  27. idnm[j]=sc.nextInt();
  28. sum= sum + gm[idnm[j]];
  29. }
  30. if(sum>=g){
  31. str[k++]=idstr[i]+" "+sum;
  32. }
  33. }
  34. if(k==0){
  35. System.out.println(0);
  36. continue;
  37. }
  38. //System.out.println("aaa");
  39. // else{
  40. // for(int i=0;i<k;i++){
  41. // System.out.println(str[i]);
  42. // }
  43. // }
  44. String[] strs= new String[k];
  45. int strm[] = new int[k];
  46. for(int i=0;i<k;i++){
  47. String[] strTemp = new String[2];
  48. strTemp = str[i].split(" ");
  49. strs[i]=strTemp[0];
  50. strm[i]=Integer.parseInt(strTemp[1]);
  51. }
  52. for(int i=0;i<k-1;i++){
  53. for(int j=i+1;j<k;j++){
  54. if(strm[i]<strm[j]){
  55. strm[i]=strm[i]^strm[j];
  56. strm[j]=strm[i]^strm[j];
  57. strm[i]=strm[i]^strm[j];
  58. String s=strs[i];
  59. strs[i]=strs[j];
  60. strs[j]=s;
  61. }
  62. if(strm[i]==strm[j]){
  63. if(strs[i].compareTo(strs[j])>0){
  64. strm[i]=strm[i]^strm[j];
  65. strm[j]=strm[i]^strm[j];
  66. strm[i]=strm[i]^strm[j];
  67. String s=strs[i];
  68. strs[i]=strs[j];
  69. strs[j]=s;
  70. }
  71. }
  72. }
  73. }
  74. System.out.println(k);
  75. for(int i=0;i<k;i++){
  76. System.out.print(strs[i]);
  77. System.out.println(" "+strm[i]);
  78. }
  79. }
  80. }
  81. }

HDOJ 1236 排名(练耐心题)的更多相关文章

  1. HDU 1236 排名(Microsoft_zzt)

    http://acm.hdu.edu.cn/showproblem.php?pid=1236 Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完 ...

  2. 题解报告:hdu 1236 排名

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1236 Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名 ...

  3. HDU 1236 排名(结构体+排序)

    今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通过分数线的 考生,并将他们的成绩按降序打 ...

  4. HDOJ/HDU 2568 前进(简单题)

    Problem Description 轻松通过墓碑,进入古墓后,才发现里面别有洞天. 突然,Yifenfei发现自己周围是黑压压的一群蝙蝠,个个扇动翅膀正准备一起向他发起进攻! 形势十分危急! 好在 ...

  5. HDOJ(HDU) 1718 Rank(水题、、、)

    Problem Description Jackson wants to know his rank in the class. The professor has posted a list of ...

  6. HDOJ 1056 HangOver(水题)

    Problem Description How far can you make a stack of cards overhang a table? If you have one card, yo ...

  7. HDOJ 1323 Perfection(简单题)

    Problem Description From the article Number Theory in the 1994 Microsoft Encarta: "If a, b, c a ...

  8. hdoj 4445 Crazy Tank 物理题/枚举角度1

    Crazy TankTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  9. 【hdoj】哈希表题hdoj1425

    hdoj1425 github链接 #include<cstdio> #include<cstring> using namespace std; const int offs ...

随机推荐

  1. SKShapeNode类

    继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) 框架  /System/L ...

  2. CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】

    CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡   一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2 ...

  3. poj 1012 Joseph (约瑟夫问题)

    Joseph Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 47657   Accepted: 17949 Descript ...

  4. PHP开发Android应用程序(转)

    第一部分是指在Android系统的手机上直接写PHP脚本代码并立即运行:第二部分则继续讲解如何把写好的PHP脚本代码打包成akp安装文件. 首先,在手机上安装两个apk包. 一个是SL4A(Scrip ...

  5. [转] 用source命令执行脚本和用sh执行脚本之间的区别

    from: http://blog.csdn.net/david_xtd/article/details/8012627 问题: 有很多方式可以执行脚本, 1).source test.bsh 2). ...

  6. 使用JDK自带缓存(Cache)实现Cookie自动登陆

    自定义一个缓存类AdminCache package jw.admin.common; import jw.base.entity.Admin; import sun.security.util.Ca ...

  7. git查看某个文件的修改历史

    <转自 http://www.cnblogs.com/flyme/archive/2011/11/28/2265899.html> 有时候在比对代码时,看到某些改动,但不清楚这个改动的作者 ...

  8. Universal-Image-Loader 基本使用

    简介 https://github.com/nostra13/Android-Universal-Image-Loader 项目的结构:每一个图片的加载和显示任务都运行在独立的线程中,除非这个图片缓存 ...

  9. OD: SafeSEH

    SafeSEH 对异常处理的保护原理 在 Windows XP sp2 以及之后的版本中,微软引入了 S.E.H 校验机制 SafeSEH.SafeSEH 需要 OS 和 Compiler 的双重支持 ...

  10. jQuery验证框架 .

          目录视图 摘要视图 订阅 “程序人生”中国软件开发者职业生涯调查     CSDN社区“三八节”特别活动      开发者职业生涯调查之未来 jQuery验证框架 分类: JQuery 2 ...