• 蓝桥杯算法提高练习 ID: 280 班级排名


    Description

     

    达达在陶陶的影响下,也对学习慢慢的产生了兴趣。

    他在每次考试之后,都会追着老师问,自己在班级的总名次是多少。考试一多,老师也不耐烦了,于是他给了达达所有人的成绩,让他自己去算出自己的排名。

    可人太多了,达达也无法立即算出来,于是他想让你帮帮他。

    Input

     

    第一行为一个整数N,代表班级的学生总数。

    接下来N行,每行一个字符串,代表一个学生的姓名,第一行总是DaDa。

    接下来一行一个整数M,代表一共有M次考试。

    每次考试有N行,每行有以一个空格分隔的一个正整数S和一个字符串P,代表名字为P的学生在这次考试中得了S分。

    Output

     

    一共M行,每行一个整数,代表达达在班级里的排名,排名是这一次考试过后的所有考试总分排名,如果达达和别人并列,达达总是排在前面。

    Sample Input 1 

    3
    DaDa 
    A 
    B 
    2 
    49 DaDa 
    49 A 
    48 B 
    80 A 
    85 B 
    83 DaDa

    Sample Output 1

    1 
    2
     1 #include<iostream>
     2 #include<algorithm>
     3 #define name first
     4 #define score second
     5 using namespace std;
     6 
     7 const int N = 110;
     8 typedef pair<string , int> PII;
     9 PII s[N], backup[N];
    10 
    11 int cmp(PII a, PII b)
    12 {
    13     if(a.score != b.score) return a.score > b.score;
    14     else return a.name == "DaDa";
    15 }
    16 int main()
    17 {
    18     int n, m;
    19     cin >> n;
    20     
    21     for(int i = 0; i < n; i ++) cin >> s[i].name;
    22     sort(s, s+n, less<>());
    23     cin >> m;
    24     
    25     while(m --)
    26     {
    27         for(int i = 0; i < n; i ++) cin >> backup[i].score >> backup[i].name;
    28         sort(backup, backup+n, less<>());
    29         
    30         for(int i = 0; i < n; i ++){
    31             s[i].score += backup[i].score;
    32             backup[i].score = s[i].score;
    33         }
    34         sort(backup, backup+n, cmp);
    35         
    36         for(int i = 0; i < n; i ++)
    37             if(backup[i].name == "DaDa")
    38             {
    39                 cout << i+1 << endl;
    40                 break;
    41             }
    42     }
    43 
    44     return 0;
    45 }
  • 相关阅读:
    数据结构 链表笔记
    C语言 字符串操作 笔记
    数据结构 排序算法 笔记
    链表详解
    mysql常用命令
    图片压缩工具之grunt-contrib-imagemin
    正则表达式
    阿里云部署nodejs服务器(windows)
    canvas简介
    js面向对象
  • 原文地址:https://www.cnblogs.com/Knight02/p/16003894.html
Copyright © 2020-2023  润新知