Given a list of N student records with name, ID and grade. You are supposed to sort the records with respect to the grade in non-increasing order, and output those student records of which the grades are in a given interval.
Input Specification:
Each input file contains one test case. Each case is given in the following format:
N
name[1] ID[1] grade[1]
name[2] ID[2] grade[2]
... ...
name[N] ID[N] grade[N]
grade1 grade2
where name[i]
and ID[i]
are strings of no more than 10 characters with no space, grade[i]
is an integer in [0, 100], grade1
and grade2
are the boundaries of the grade's interval. It is guaranteed that all the grades are distinct.
Output Specification:
For each test case you should output the student records of which the grades are in the given interval [grade1
, grade2
] and are in non-increasing order. Each student record occupies a line with the student's name and ID, separated by one space. If there is no student's grade in that interval, output NONE
instead.
Sample Input 1:
4
Tom CS000001 59
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
60 100
Sample Output 1:
Mike CS991301
Mary EE990830
Joe Math990112
Sample Input 2:
2
Jean AA980920 60
Ann CS01 80
90 95
Sample Output 2:
NONE
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
static class Student{
String name;
String id;
int grade;
public Student(String name,String id,int grade){
this.name=name;
this.id=id;
this.grade=grade;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
List<Student> lists=new ArrayList<>();
for(int i=0;i<n;i++) {
String name=sc.next();
String id=sc.next();
int grade=sc.nextInt();
lists.add(new Student(name,id,grade));
}
int L=sc.nextInt();
int R=sc.nextInt();
lists.sort((a,b)->{
return b.grade-a.grade;
});
int num=0;
boolean flag=true;
for(int i=0;i<n;i++) {
Student stu = lists.get(i);
if(stu.grade>=L&&stu.grade<=R) {
System.out.println(stu.name+" "+stu.id);
flag=false;
}
}
if(flag) {
System.out.println("NONE");
}
}
}