PAT 1083. List Grades (25)

来源:互联网 发布:达芬奇14mac怎么改中文 编辑:程序博客网 时间:2024/05/01 12:10

1083. List Grades (25)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

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:

Nname[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:
4Tom CS000001 59Joe Math990112 89Mike CS991301 100Mary EE990830 9560 100
Sample Output 1:
Mike CS991301Mary EE990830Joe Math990112
Sample Input 2:
2Jean AA980920 60Ann CS01 8090 95
Sample Output 2:
NONE

简单的排序问题,代码如下:

#include <iostream>#include <algorithm>#include <cmath>#include <string>#include <vector>#include <cstring>using namespace std;typedef struct node{string name;string id;int grade;}node;bool cmp(node a,node b){return a.grade>b.grade;}int main(void){int N;cin>>N;vector<node> stu(N);for(int i=0;i<N;i++)cin>>stu[i].name>>stu[i].id>>stu[i].grade;sort(stu.begin(),stu.end(),cmp);int min,max;bool flag=false;cin>>min>>max;for(int i=0;i<N;i++){if(stu[i].grade>max)continue;if(stu[i].grade<min)break;if(stu[i].grade<=max&&stu[i].grade>=min){flag=true;cout<<stu[i].name<<" "<<stu[i].id<<endl;}}if(flag==false)cout<<"NONE";}

 

0 0
原创粉丝点击