L2-027 名人堂与代金(排序)

L2-027 名人堂与代金(排序)原题链接对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 PAT 代金券;在 [60, G) 区间内者,可以得到 20 元PAT代金券。全国考点通用,一年有效。同时任课老师还会把总评成绩前 K 名的学生列入课程“名人堂”。本题就请你编写程序,帮助老师列出名人堂的学生,并统计一共发出了面值多少元的 PAT 代金券。输入格

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原题链接

对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 PAT 代金券;在 [60, G) 区间内者,可以得到 20 元PAT代金券。全国考点通用,一年有效。同时任课老师还会把总评成绩前 K 名的学生列入课程“名人堂”。本题就请你编写程序,帮助老师列出名人堂的学生,并统计一共发出了面值多少元的 PAT 代金券。

输入格式:
输入在第一行给出 3 个整数,分别是 N(不超过 10 000 的正整数,为学生总数)、G(在 (60,100) 区间内的整数,为题面中描述的代金券等级分界线)、K(不超过 100 且不超过 N 的正整数,为进入名人堂的最低名次)。接下来 N 行,每行给出一位学生的账号(长度不超过15位、不带空格的字符串)和总评成绩(区间 [0, 100] 内的整数),其间以空格分隔。题目保证没有重复的账号。

输出格式:
首先在一行中输出发出的 PAT 代金券的总面值。然后按总评成绩非升序输出进入名人堂的学生的名次、账号和成绩,其间以 1 个空格分隔。需要注意的是:成绩相同的学生享有并列的排名,排名并列时,按账号的字母序升序输出。

输入样例:

10 80 5
cy@zju.edu.cn 78
cy@pat-edu.com 87
1001@qq.com 65
uh-oh@163.com 96
test@126.com 39
anyone@qq.com 87
zoe@mit.edu 80
jack@ucla.edu 88
bob@cmu.edu 80
ken@163.com 70

输出样例:

360
1 uh-oh@163.com 96
2 jack@ucla.edu 88
3 anyone@qq.com 87
3 cy@pat-edu.com 87
5 bob@cmu.edu 80
5 zoe@mit.edu 80

普通排序版本

#include<bits/stdc++.h>
#define x first
#define y second
#define send string::nops
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
const int M = 3 * N;
const int INF = 0x3f3f3f3f;
typedef pair<int,int> PII;
typedef struct Node * pnode;
struct Node{ 
   
    int mingci;
    string name;
    int score;
}node[N];
bool cmp(const Node &a,const Node &b){ 
   
    if(a.score == b.score)return a.name < b.name;
    else return a.score > b.score;
}
int main(){ 
   
    int n,m,top,num = 0;
    ios::sync_with_stdio(false);
    cin>>n>>m>>top;
    for(int i = 0;i < n;i ++){ 
   
        cin>>node[i].name>>node[i].score;
        if(node[i].score >= m)num += 50;
        else if(node[i].score >= 60)num += 20;
    }
    sort(node,node + n,cmp);
    node[0].mingci = 1;
    cout<<num<<endl;
    cout<<node[0].mingci <<" "<<node[0].name<<" "<<node[0].score<<endl;
    for(int i = 1;i < n ;i ++){ 
   
        if(node[i].score == node[i - 1].score)node[i].mingci = node[i - 1].mingci;
        else node[i].mingci = i + 1;
        if(node[i].mingci <= top)
            cout<<node[i].mingci <<" "<<node[i].name<<" "<<node[i].score<<endl;
        else break;
    }
// for(int i = 0;node[i].mingci <= top;i ++)
// cout<<node[i].mingci <<" "<<node[i].name<<" "<<node[i].score<<endl;
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168916.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • don\’t have permission access on this server听语音

    don\’t have permission access on this server听语音

    2021年9月23日
    49
  • php 使用 ffmpeg 转换视频,截图,并生成缩略图

    php 使用 ffmpeg 转换视频,截图,并生成缩略图

    2021年10月9日
    65
  • 大一新生应该如何学习C语言,书上代码看不懂理解不了怎么办?

    大一新生应该如何学习C语言,书上代码看不懂理解不了怎么办?大家好,我是二哥呀!昨天有个读者问我要C语言的学习路线,他今年刚上大一,书上的代码完全看不懂。讲真,大一新生,一般都是零基础的纯小白,看不懂书上的代码很正常,除非是小学、初中、高中就开始卷计算机的硬核少年;或者是因为教材选的有问题。那刚好二哥之前整理过一些学习C语言的资料和学习方法,今天趁这个机会就再做个汇总和梳理。推荐一本书,两门视频课,若干学习建议,看完后如果还看不懂、理解不了C语言,过来骂我、捶我,只要不要打脸就行。01)阮一峰老师的C语言入门教程这个教程是开源的,采用知识共享许可

    2022年6月11日
    34
  • python的lambda表达式详细讲解

    python的lambda表达式详细讲解前言:Lambda表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。缺点:只有一个运算式,不适用于复杂的计算。不够直观,难于理解,增加了维护成本python的lambda可以和java中的stream流一样,可以将lambda函数作为参数传递给其他函数比如说结合map、filter、sorted、reduce等一些Python内置函数使用接下来我们用代码来演示一下lambda(1)简单用法

    2022年10月17日
    3
  • 《手把手教你学DSP》总结1

    《手把手教你学DSP》总结11.开始学习时不要纠结DSP的具体结构,大体了解有哪些功能模块即可,DSP的工作原理不是重点,在后期使用时再详细弄懂所需结构的详情2.C2000系列即TMS320C2000包括F24XX,C28XX,F28XX为低端型号,C5000系列面向低功耗,C6000系列面向高性能3.TI的DSP型号含义例如:TMS320F2812PGFA  例如:TMS320F2812PGFA

    2022年6月9日
    27
  • mbus总线电路_CPU电路

    mbus总线电路_CPU电路发送也就是24V,36V切换,24V低电平,36V是高电平;主机接收电路可以高端放大也可以低端放大,设备端只会消耗固定的电流,mbus网络趋于稳定,负载时稳定的,当设备端发送数据时,mbus网络中电流会有所变化,通过采样电阻,电压跟随器,差分放大,采样保持电路,获取ttl电平,短路过载保护也是通过低端采样电阻控制供电开关的。…

    2022年10月15日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号