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");
		}
	}
}
相关推荐
gugucoding13 小时前
2. 【Java】搭建Java开发环境
java·开发语言
2601_9498180913 小时前
Vector从入门到应用(C++ STL动态数组万字全解
开发语言·c++
wang090713 小时前
自己动手写一个spring之MVC_3
java·spring·mvc
汉克老师13 小时前
GESP2026年6月认证C++八级( 第三部分编程题(1、线网建设))精讲
c++·最小生成树·排序·kruskal·并查集·gesp8级
闲猫14 小时前
Spring AI / Models / Chat Models / Ollama
java·人工智能·spring
胖大和尚14 小时前
Linux 内核工程师、HPC工程师、C++工程师
c++·kernel·hpc
FREEDOM_X14 小时前
Linux 多线程编程——总结
java·linux·运维·ubuntu
tmlx3I08114 小时前
Tomcat的架构设计和启动过程详解
java·tomcat
weixin_4223293114 小时前
AgentScope Java 项目入门 & Builder 深度解读
java·开发语言·人工智能
shepherd12614 小时前
一次把 Spring MVC 文件上传参数“查没了”的排查:multipart、Filter 与 request body 的连环坑
java·后端·spring·mvc