前言

传送门

正文


参考题解

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
/* 基本的排序题 题意: 输入n条学生记录,每条记录包含name,id,grade,再给一个grade1和grade2表示范围 将学生成绩在这个范围内的学生的name和id输出即可,按照grade降序排序,题目保证所有的grade都不相同 */
const int N=1e5+10;
int n,grade1,grade2;
struct Student{
	char name[12],id[12];
	int grade;
}stu[N]; 
bool cmp(Student a,Student b){
	return a.grade>b.grade;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%s %s %d",stu[i].name,stu[i].id,&stu[i].grade);
	}
	scanf("%d %d",&grade1,&grade2);
	if(grade1>grade2)swap(grade1,grade2);
	sort(stu+1,stu+1+n,cmp);
	if(stu[n].grade>grade2||stu[1].grade<grade1)printf("NONE\n");
	else{
		for(int i=1;i<=n;i++){
			if(stu[i].grade>=grade1&&stu[i].grade<=grade2)
			printf("%s %s\n",stu[i].name,stu[i].id); 
		}
	}
	return 0;
}