zoukankan      html  css  js  c++  java
  • PAT 甲级 1083 List Grades

    https://pintia.cn/problem-sets/994805342720868352/problems/994805383929905152

    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 [grade1grade2] 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
    
     

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 1e5 + 10;
    int N;
    int L, R;
    
    struct Node{
        char name[15];
        char id[15];
        int score;
    }node[maxn];
    
    bool cmp(const Node& a, const Node& b) {
        return a.score > b.score;
    }
    
    int main() {
        scanf("%d", &N);
        for(int i = 0; i < N; i ++)
            scanf("%s%s%d", node[i].name, node[i].id, &node[i].score);
        scanf("%d%d", &L, &R);
        sort(node, node + N, cmp);
        int cnt = 0;
        for(int i = 0; i < N; i ++) {
            if(node[i].score >= L && node[i].score <= R) {
                cnt ++;
                printf("%s %s
    ", node[i].name, node[i].id);
            }
        }
        if(!cnt) printf("NONE
    ");
        return 0;
    }
    

     真滴是很久不见啦!

  • 相关阅读:
    歌曲汇总
    赤道附近
    看樱花(也有很多其他花)
    线程池异常处理之重启线程处理任务
    ElasticSearch Index操作源码分析
    探究ElasticSearch中的线程池实现
    由字典树想到的
    ElasticSearch 启动时加载 Analyzer 源码分析
    Elasticsearch6.3.2启动过程源码阅读记录
    Elasticsearch High Level Rest Client 发起请求的过程分析
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10254928.html
Copyright © 2011-2022 走看看