1083. List Grades (25)

来源:互联网 发布:创新发展知乎 编辑:程序博客网 时间:2024/04/28 01:30
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.简单结构体排序问题


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;}


0 0