1083. List Grades (25)

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.

IDEA

1.简单结构体排序问题

1083. List Grades (25)_第1张图片

CODE

#include<iostream>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
struct Stu{
	string name;
	string id;
	int score;
};
int cmp(Stu s1,Stu s2){
	return s1.score>s2.score;
}
int main(){
	int n;
	cin>>n;
	vector<Stu> vec;
	for(int i=0;i<n;i++){
		Stu stu;
		cin>>stu.name>>stu.id>>stu.score;
		vec.push_back(stu);
	}
	sort(vec.begin(),vec.end(),cmp);
	int grade1,grade2;
	cin>>grade1>>grade2;
	int flag=0;
	for(int i=0;i<vec.size();i++){
		if(vec[i].score<grade1){
			break;
		}else if(vec[i].score>=grade1&&vec[i].score<=grade2){
			flag=1;
			cout<<vec[i].name<<" "<<vec[i].id<<endl;
		}
	}
	if(!flag){
		cout<<"NONE";
	}
	return 0;
}


你可能感兴趣的:(pat,结构体排序)