PAT A1025 Ranking

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class PAT_1025 {
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int epoch = scanner.nextInt();
        scanner.nextLine();
        int a = 0;
        ArrayList<Student> llList = new ArrayList<>();
        while(epoch!=0) {
            a = a+1;
            int num = scanner.nextInt();
            scanner.nextLine();
            ArrayList<Student> list = new ArrayList<>();
            
            //将每个对象保存起来
            for (int i = 0; i < num; i++) {
                String str = scanner.nextLine().trim();
                String []string = str.split("\\ ");

                Student student = new Student(Long.parseLong(string[0]), Integer.parseInt(string[1]), 0, a, 0);
                list.add(student);    
            }
            Collections.sort(list);
            
            //对每个对象进行排序, 并添加场内名次
            for (int i = 0; i < list.size(); i++) {
                if(i==0)
                    list.get(i).setChangneimingci(1);
                else if(list.get(i).getFenshu()==list.get(i-1).getFenshu())
                    list.get(i).setChangneimingci(list.get(i-1).getChangneimingci());
                else
                    list.get(i).setChangneimingci(i+1);
            }
            
            
            
            //将每个对象添加进大的list里面
            for(Student student:list) 
                llList.add(student);
            epoch--;
        }
        Collections.sort(llList);
        for (int i = 0; i < llList.size(); i++) {
            if(i==0)
                llList.get(i).setQuanbumingci(1);
            else if(llList.get(i).getFenshu()==llList.get(i-1).getFenshu())
                llList.get(i).setQuanbumingci(llList.get(i-1).getQuanbumingci());
            else
                llList.get(i).setQuanbumingci(i+1);
        }
        
        for(Student student:llList)
            System.out.println(student.getKaohao()+" "+
                    student.getQuanbumingci()+" "+student.getKaochenghao()+" "+student.getChangneimingci());
    }

}
class Student implements  Comparable<Student>{
    long kaohao;
    int fenshu;
    int quanbumingci;
    int kaochenghao;
    int changneimingci;
    public Student(long kaohao, int fenshu, int quanbumingci, int kaochenghao, int changneimingci) {
        super();
        this.kaohao = kaohao;
        this.fenshu = fenshu;
        this.quanbumingci = quanbumingci;
        this.kaochenghao = kaochenghao;
        this.changneimingci = changneimingci;
    }
    public long getKaohao() {
        return kaohao;
    }
    public void setKaohao(long kaohao) {
        this.kaohao = kaohao;
    }
    public int getFenshu() {
        return fenshu;
    }
    public void setFenshu(int fenshu) {
        this.fenshu = fenshu;
    }
    public int getQuanbumingci() {
        return quanbumingci;
    }
    public void setQuanbumingci(int quanbumingci) {
        this.quanbumingci = quanbumingci;
    }
    public int getKaochenghao() {
        return kaochenghao;
    }
    public void setKaochenghao(int kaochenghao) {
        this.kaochenghao = kaochenghao;
    }
    public int getChangneimingci() {
        return changneimingci;
    }
    public void setChangneimingci(int changneimingci) {
        this.changneimingci = changneimingci;
    }
    
      @Override  
        public int compareTo(Student o1) {  
            int i = this.getFenshu() - o1.getFenshu();//先按照分数排序  
            if(i == 0){ 
                if (this.getKaohao() - o1.getKaohao()>0) {
                    return 1;
                }
                else
                    return -1;//如果分数相等了再用考号进行排序  
            }  
            return -i;  
        }  

    
}
 

猜你喜欢

转载自blog.csdn.net/qq_36167072/article/details/84104530