求助,只有80分!
查看原帖
求助,只有80分!
470881
郭亮20510507027楼主2022/10/10 21:28
import java.util.*;

public class Main {
	public static void main(String[] args) {
//		输入
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		int n = sc.nextInt();
		int[][] competer = new int[m][2];
		int sline = 0,cnt = 0;
		for(int i=0;i<m;i++) {
			competer[i][0] = sc.nextInt();
			competer[i][1] = sc.nextInt();
		}
//		把所有选手(competer数组)先按分数从大到小排列,之后对分数相同的选手号排序从小到大排序
		Arrays.sort(competer,new Comparator<int[]>(){
			@Override
			public int compare(int[] o1, int[] o2) {
				if(o1[1]==o2[1])return o1[0]-o2[0];
				return o2[1]-o1[1];
			}
		});	
		int sindex = (int)(n*1.5);//把第sindex人的分数作为分数线
		sline = competer[sindex][1];//分数线	
//		统计分数为分数线sline的有cnt人
		for(int i = sindex;competer[i][1]==sline;i++) {			
			cnt++;
		}
		System.out.println(sline+" "+(sindex+cnt));
		for(int i=0;i<m;i++) {
			if(competer[i][1]>=sline) {
				System.out.println(competer[i][0]+" "+competer[i][1]);
			}
		}
	}
}

2022/10/10 21:28
加载中...