import java.util.Scanner;
public class P1068分数线划定 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[][] a= new int[10005][103];
int[] b = new int[104];
m=(int)Math.floor(m*1.5);
int id=0;//学号
int grade=0;//成绩
for(int i=0;i<n;i++) {
id=sc.nextInt();
grade=sc.nextInt();
a[id][grade]++;
b[grade]++;
}
int total=0;//人数
int line=0;//分数线
for(int i=100;total<m;i--) {
//比如90分数有两个人,b[i]=2 直接加上去 最后m=4,total=3,
// 再来一次发现b[i]=2(88分两个人一起加上去
total+=b[i];
line=i;//分数线=88
}
System.out.println(line+ " "+total);
for(int i=100;i>=line;i--) {
for(int j=1000;j<10000;j++) {
if(a[j][i]!=0) {
System.out.println(j+" "+i);
}
}
}
sc.close();
}
}
【java】P1068分数线划定题解(注释) 将数组下标作为记录,无序排序 方法简洁
最新推荐文章于 2024-11-17 21:07:59 发布