1083. List Grades (25)

102 篇文章 0 订阅
37 篇文章 0 订阅

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:

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

N个学生name,id, grade
分数grade 唯一,范围[0,100]
求分数在[grade1,grade2]范围内的
用得到vector 和pair。也可以直接用两个数组开到101,并且初值标记;
pair 链接http://www.cnblogs.com/cszlg/archive/2013/03/10/2952807.html

评测结果

时间结果得分题目语言用时(ms)内存(kB)用户
8月09日 11:44答案正确251083C++ (g++ 4.7.2)1436datrilla

测试点

测试点结果用时(ms)内存(kB)得分/满分
0答案正确143614/14
1答案正确13081/1
2答案正确13085/5
3答案正确13125/5

#include<iostream> 
#include<vector>
#include<string>
using namespace std;  
#define max 101 
void readln(vector<pair<string, string> >*LG, int N)
{ 
  int grade; 
  string name;
  string id;
  while (N--)
  { 
    cin >> name >> id >> grade; 
    (*LG)[grade] .first= name;
    (*LG)[grade] .second= id;
  }
}
bool display(vector<pair<string, string> >*LG, int grade1, int grade2)
{ 
  bool sign = true;
  for (;grade2 >= grade1;grade2--)
  { 
    if (!(*LG)[grade2].first.empty())
    {
      cout << (*LG)[grade2].first << " " << (*LG)[grade2].second << endl;
      sign = false;
    }
  }
  return sign;
} 
int main()
{ 
  vector<pair<string,string> >LG(max);
  int N,grade1,grade2;  
  cin >> N; 
  readln(&LG, N);
  cin >> grade1 >> grade2; 
  if (display(&LG, grade1, grade2))cout << "NONE" << endl;  
  system("pause");
  return 0;
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值