PAT (Basic Level) Practise (中文) 1015. 德才论 (25)

来源:互联网 发布:js事件绑定on 编辑:程序博客网 时间:2024/05/21 07:01

1015. 德才论 (25)

时间限制
200 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Li

宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”

现给出一批考生的德才分数,请根据司马光的理论给出录取排名。

输入格式:

输入第1行给出3个正整数,分别为:N(<=105),即考生总数;L(>=60),为录取最低分数线,即德分和才分均不低于L的考生才有资格被考虑录取;H(<100),为优先录取线——德分和才分均不低于此线的被定义为“才德全尽”,此类考生按德才总分从高到低排序;才分不到但德分到线的一类考生属于“德胜才”,也按总分排序,但排在第一类考生之后;德才分均低于H,但是德分不低于才分的考生属于“才德兼亡”但尚有“德胜才”者,按总分排序,但排在第二类考生之后;其他达到最低线L的考生也按总分排序,但排在第三类考生之后。

随后N行,每行给出一位考生的信息,包括:准考证号、德分、才分,其中准考证号为8位整数,德才分为区间[0, 100]内的整数。数字间以空格分隔。

输出格式:

输出第1行首先给出达到最低分数线的考生人数M,随后M行,每行按照输入格式输出一位考生的信息,考生按输入中说明的规则从高到低排序。当某类考生中有多人总分相同时,按其德分降序排列;若德分也并列,则按准考证号的升序输出。

输入样例:
14 60 8010000001 64 9010000002 90 6010000011 85 8010000003 85 8010000004 80 8510000005 82 7710000006 83 7610000007 90 7810000008 75 7910000009 59 9010000010 88 4510000012 80 10010000013 90 9910000014 66 60
输出样例:
1210000013 90 9910000012 80 10010000003 85 8010000011 85 8010000004 80 8510000007 90 7810000006 83 7610000005 82 7710000002 90 6010000014 66 6010000008 75 7910000001 64 90
//这个认真审题,题目比较长要耐心读题。//所涉及技术点,如何根据集合中对象的某个属性值排序,挺有意思的import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.Scanner;public class Main {  public static void main(String[] args) {    Scanner input=new Scanner(System.in);    int n=input.nextInt();    int min=input.nextInt();    int zeyou=input.nextInt();        int number[]=new int[n];    int de[]=new int[n];    int cai[]=new int[n];    for (int i = 0; i < n; i++) {      number[i]=input.nextInt();      de[i]=input.nextInt();      cai[i]=input.nextInt();    }    Comparator<Student> comparator=new Comparator<Student>() {      @Override      public int compare(Student s1, Student s2) {        if (s1.sum!=s2.sum) {                    return -(s1.sum-s2.sum);        }else {                    if (s1.de!=s2.de) {            return -(s1.de-s2.de);          }else {            return s1.number-s2.number;          }                  }      }    };        ArrayList<Student> list1=new ArrayList<Student>();    ArrayList<Student> list2=new ArrayList<Student>();    ArrayList<Student> list3=new ArrayList<Student>();    ArrayList<Student> list4=new ArrayList<Student>();    for (int i = 0; i < n; i++) {          Student stu=new Student();            if (de[i]<min||cai[i]<min) {        continue;      }else if (de[i]>=zeyou&&cai[i]>=zeyou) {        stu.number=number[i];        stu.de=de[i];        stu.cai=cai[i];        stu.sum=de[i]+cai[i];        list1.add(stu);      }else if (de[i]>=zeyou&&cai[i]<zeyou) {        stu.number=number[i];        stu.de=de[i];        stu.cai=cai[i];        stu.sum=de[i]+cai[i];        list2.add(stu);      }else if (de[i]<zeyou&&cai[i]<zeyou&&de[i]>cai[i]) {        stu.number=number[i];        stu.de=de[i];        stu.cai=cai[i];        stu.sum=de[i]+cai[i];        list3.add(stu);      }else {        stu.number=number[i];        stu.de=de[i];        stu.cai=cai[i];        stu.sum=de[i]+cai[i];        list4.add(stu);      }    }    Collections.sort(list1,comparator);        Collections.sort(list2,comparator);    Collections.sort(list3,comparator);    Collections.sort(list4,comparator);            System.out.println(list1.size()+list2.size()+list3.size()+list4.size());    display(list1);    display(list2);    display(list3);    display(list4);              }  public static void display(ArrayList<Student> list){    for (Student student : list) {      System.out.println(student);    }  }  }class Student{  int number;  int de;  int cai;  int sum;  public String toString() {    return number+" "+de+" "+cai;  }    public Student() {    super();  }  public Student(int number,int de,int cai,int sum) {    this.number=number;    this.de=de;    this.cai=cai;    this.sum=sum;  }  } 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机用久有点卡怎么办 手机有点卡怎么办魅蓝 苹果6排线接反了怎么办 oppo手机解锁密码忘了怎么办 魅蓝5音量小怎么办 魅蓝5密码忘记了怎么办 魅蓝note3锁定了怎么办 魅族mx5系统铃声没有了怎么办 魅族主板坏了怎么办 魅族mx5螺丝滑丝怎么办 魅族魅蓝e手机被锁了怎么办 魅蓝e被锁机了怎么办 魅蓝3s卡顿怎么办 魅族note5玩王者荣耀卡怎么办 魅族手机内存不够怎么办 魅族手机音量小怎么办 魅族mx5指纹解锁失灵怎么办 魅族手机费电快怎么办 魅族mx4pro玩王者荣耀卡怎么办 魅蓝5s玩游戏卡怎么办 魅蓝s6玩游戏卡怎么办 OPPO王者荣耀对局闪退怎么办 魅族手机太慢怎么办 魅蓝5信号不好怎么办 魅蓝数据网速慢怎么办 魅族联通网速慢怎么办 魅族手机wifi信号弱怎么办 魅蓝e2信号差怎么办 魅蓝e2gps信号弱怎么办 魅族网络信号差怎么办 魅族手机gps信号弱怎么办 魅族手机突然没有信号怎么办 魅族手机流量信号不好怎么办 魅族手机wifi信号差怎么办 魅族5s信号不好怎么办 魅族mx5的双击不亮屏怎么办 魅族mx5返回键失灵怎么办 电信苹果3g网速慢怎么办 魅蓝6开不了机怎么办 手机应用被锁了怎么办 魅族电池不耐用怎么办