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");
		}
	}
}
相关推荐
CSDN_RTKLIB17 分钟前
两版本锁抛出异常测试
c++
晨非辰18 分钟前
Linux权限管理速成:umask掩码/file透视/粘滞位防护15分钟精通,掌握权限减法与安全协作模型
linux·运维·服务器·c++·人工智能·后端
开发者小天7 小时前
python中For Loop的用法
java·服务器·python
flushmeteor7 小时前
JDK源码-基础类-String
java·开发语言
毕设源码-钟学长8 小时前
【开题答辩全过程】以 基于ssm的空中停车场管理系统为例,包含答辩的问题和答案
java
不愿是过客8 小时前
java实战干货——长方法深递归
java
u0109272718 小时前
C++中的策略模式变体
开发语言·c++·算法
小北方城市网9 小时前
Redis 分布式锁高可用实现:从原理到生产级落地
java·前端·javascript·spring boot·redis·分布式·wpf
Aevget10 小时前
MFC扩展库BCGControlBar Pro v37.2新版亮点:控件功能进一步升级
c++·mfc·界面控件
六义义10 小时前
java基础十二
java·数据结构·算法