A1083 PAT甲级JAVA题解 List Grades

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
java 复制代码
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");
		}
	}
}
相关推荐
程序员雷欧9 分钟前
ThreadPoolExecutor 深度解析:从核心参数到源码实现的全面剖析
java·开发语言·jvm
谢尔登18 分钟前
分享一些我常用的Skill
java·人工智能·python·actionscript
AaronJonah39 分钟前
企业级线程池 traceId 闭环:上下文传递与全链路追踪实战
java·线程池·traceid跨线程传递
吹什么轩1 小时前
c++复习:模拟实现list来更好的理解和应用list
开发语言·c++
程序员黑豆1 小时前
Java入门第一步:从零开始编写你的第一个Hello World程序
java·前端·ai编程
AmyLin_20011 小时前
PDF 色彩保真工程实践【5】核心实现(下):拼装 Image XObject、页面资源与内容流
c++·pdf·sdk·颜色空间·印刷·icc·cmyk
Jazz_z2 小时前
如何用Python将彩色PDF一键转为黑白(灰度)
java·python·pdf
青山木2 小时前
Hot 100 --- 在排序数组中查找元素的第一个和最后一个位置
java·数据结构·算法·leetcode
天空之外1362 小时前
Docker安装MySQL 8.4 LTS、Docker安装Redis 7.4.x、Docker安装MinIO
java·mysql·docker
乱七八糟的屋子2 小时前
MTL4 (Matrix Template Library) 超详细实战教程|C++高性能稠密/稀疏矩阵计算
c++·矩阵·稀疏矩阵·mtl4·matrixtemplate·c++线性代数·高性能数值计算