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");
		}
	}
}
相关推荐
mikasa6677 分钟前
关于Spring MVC 基于 AOP 实现的全局控制器统一处理方案@ControllerAdvice
java·spring·mvc
一 乐9 分钟前
幼儿园管理系统|基于springboot + vue幼儿园管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·幼儿园管理系统
Boom_Shu10 分钟前
浅拷贝与深拷贝
开发语言·c++·算法
Bat U10 分钟前
JavaEE|SpringMVC
java·java-ee
摇滚侠14 分钟前
SpringMVC 入门到实战 SpringMVC 的执行流程 96
java·后端·spring·maven·intellij-idea
唐青枫16 分钟前
Java Liquibase 实战指南:让数据库变更像代码一样可追踪
java
Mortalbreeze19 分钟前
C++ Lambda表达式详解:从捕获列表到底层原理
开发语言·c++
qq_4221525720 分钟前
PDF 解密工具怎么选?2026 年文档密码移除方案与注意事项
java·前端·pdf
为何创造硅基生物24 分钟前
LVGL
c++·ui
布朗克16829 分钟前
38 Spring Boot入门——自动配置、核心注解与Starter机制
java·spring boot·后端