PAT(BasicLevel):德才论 (25)

来源:互联网 发布:apache tika使用说明 编辑:程序博客网 时间:2024/06/11 15:06
宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之
小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”

现给出一批考生的德才分数,请根据司马光的理论给出录取排名。 
输入描述:
输入第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 79

10000001 64 90

import java.util.Scanner;import java.util.TreeSet;/** * **PAT:德才论 * *1.利用BST保存有序数据集,直接输出免排序。 * *2.如果要进行对集合、数组的排序,最好采用qSort,否则会超时 * @author 编程只服JAVA * */public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int n = sc.nextInt();        int L = sc.nextInt();        int H = sc.nextInt();                        /*          *  TreeSet:底层数据结构是二叉树。          * 可以根据自然排序,或者比较器排序(创建 set 时提供的 Comparator 进行排序)对集合中的元素进行排序。          * 具体使用,参照构造方法。          *           * 无参构造:          *      TreeSet() 构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。          *           * 注意:通过这个例子说明了TreeSet集合是:有序(按照某种规则排序),唯一。          * 自定义的对象必须重写Comparable接口的方法 进行比较 (以及比较的优先级或者比较的次要条件         * 重写完自然排序接口后,我们发现一个规律:          * 如果返回值是0,说明元素重复。只存储第一个。          * 如果返回值大于0,正向存储。          * 如果返回值小于0,逆向存储。         */        TreeSet<Stu> both = new TreeSet<Stu>();        TreeSet<Stu> dc1 = new TreeSet<Stu>();        TreeSet<Stu> dc2 = new TreeSet<Stu>();        TreeSet<Stu> dc3 = new TreeSet<Stu>();        while(n != 0){            Stu stu = new Stu(sc.nextInt(), sc.nextInt(), sc.nextInt());            if(stu.d < L || stu.c <L){                n--;                continue;            }            if(stu.d >= H && stu.c >= H)                both.add(stu);            else if(stu.d >= H)                dc1.add(stu);            else if(stu.d >= stu.c)                dc2.add(stu);            else                dc3.add(stu);            n--;        }        System.out.println(both.size()+dc1.size()+dc2.size()+dc3.size());        print(both);        print(dc1);        print(dc2);        print(dc3);        sc.close();             }         private static void print(TreeSet<Stu> set) {        for(Stu s : set)            System.out.println(s.id + " " + s.d + " " + s.c);    }     static class Stu implements Comparable<Stu>{        int id, d, c, sum;        public Stu(int id, int d, int c) {            this.id = id;            this.d = d;            this.c = c;            this.sum = d+c;        }        public int compareTo(Stu o) {//            if(this.sum != o.sum)//                return o.sum-this.sum;//            if(this.d != o.d)//                return o.d-this.d;//            return this.id-o.id;                if(this.sum == o.sum){        if(this.d == o.d){        return this.id-o.id;        }else {        return o.d-this.d;}        }            return o.sum-this.sum;        }             }     }


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 投资了网上融资平台被骗怎么办 微信被覆盖了怎么办 微信号被覆盖了怎么办 样品鞋子在灯光下变黄怎么办 美图秀秀拼图后发朋友圈模糊怎么办 手机重开淘宝网店怎么办 淘宝店铺下架了怎么办 淘宝东西下架了怎么办 淘宝衣服下架了怎么办 淘宝物品下架了怎么办 淘宝货品下架了怎么办 淘宝cmcc下架了怎么办 修手机主板被换怎么办 换手机屏幕被调换零件怎么办 买了东西想退换怎么办 淘宝退货卖家不同意怎么办 淘宝退货退错了怎么办 商品质量问题换货后仍有问题怎么办 货没收到想退款怎么办 淘宝退货店家不退款怎么办 京东退货快递显示签收怎么办 买家已付款卖家不发货怎么办 两个地址发给买家退货怎么办 超市盘点少了货怎么办 月盘点出错领导要理由怎么办 做外汇被坑怎么办?亏损二十多万 iphone储存空间已满怎么办 icloud储存空间将满怎么办 手机店没人进店怎么办 淘宝退货运单填错了怎么办 淘宝快递单号填错了怎么办 拼多多48小时不发货怎么办 想开化妆品店没有经验怎么办 淘宝卖家收钱不发货怎么办 nike拖鞋买小了怎么办 京东换货没货了怎么办 淘宝申请退货退款卖家不处理怎么办 家具连接扣坏了怎么办 锅炉炉水碱度低怎么办 快递里面的东西少了怎么办 很多闲置在家里的东西怎么办