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");
		}
	}
}
相关推荐
微学AI3 小时前
Rust语言的深度剖析:内存安全与高性能的技术实现操作
java·安全·rust
程序猿小蒜3 小时前
基于springboot的共享汽车管理系统开发与设计
java·开发语言·spring boot·后端·spring·汽车
lsp程序员0103 小时前
使用 Web Workers 提升前端性能:让 JavaScript 不再阻塞 UI
java·前端·javascript·ui
q***46524 小时前
在2023idea中如何创建SpringBoot
java·spring boot·后端
hygge9994 小时前
Spring Boot + MyBatis 整合与 MyBatis 原理全解析
java·开发语言·经验分享·spring boot·后端·mybatis
q***25214 小时前
Spring Boot接收参数的19种方式
java·spring boot·后端
WX-bisheyuange4 小时前
基于Spring Boot的民谣网站的设计与实现
java·spring boot·后端
q***14644 小时前
Spring Boot文件上传
java·spring boot·后端
AA陈超5 小时前
ASC学习笔记0014:手动添加一个新的属性集
c++·笔记·学习·ue5
Run_Teenage5 小时前
C++:智能指针的使用及其原理
开发语言·c++·算法