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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 那年那兔那些事观后感600字_那年那兔那些事儿金句

    那年那兔那些事观后感600字_那年那兔那些事儿金句我们生活在现在,吃得饱穿的暖。但是总觉得自己很不幸福。需要那么努力的去奋斗。抱怨社会的不公平。然而世界上什么时候公平过。我们都快忘了从八国联军侵华的时候开始什么时候公平过。从有了人便有了三六九等谈什

    2022年8月3日
  • MyBatis批量新增和更新

    MyBatis批量新增和更新

    2020年11月12日
  • 网络攻防实验之缓冲区溢出攻击

    网络攻防实验之缓冲区溢出攻击这个实验是网络攻防课程实验中的一个,但是目前我还没有完全搞懂代码,以后有机会来补。也欢迎大佬指点一、实验目的和要求通过实验掌握缓冲区溢出的原理,通过使用缓冲区溢出攻击软件模拟入侵远程主机理解缓冲区溢出危害性,并理解防范和避免缓冲区溢出攻击的措施。二、实验原理和实验环境实验原理:缓冲区溢出(BufferOverflow)是目前非常普遍而且危…

    2022年7月12日
  • 微信小程序宠物论坛2[通俗易懂]

    微信小程序宠物论坛2[通俗易懂]微信小程序宠物论坛2发帖模块界面展示填写标题、内容和选择图片之后,点击确定图片,然后点击发布即可。JS部分//import{promisify}from’../../utils/promise.util’import{$init,$digest}from’../../utils/common.util’//constwxUploadFile=promisify(wx.cloud.uploadFile)constdb=wx.cloud.databa

    2022年10月7日
  • 【转载】WebService相关概念

    【转载】WebService相关概念

    2021年11月18日
  • 冻肉进口报关流程_企业如何取得报关资质

    冻肉进口报关流程_企业如何取得报关资质接单实操接到一票单子首先要审查进口企业是否有进口此产品的资质其次要审核单据是否单证相符单单相符单货相符最后整理资料。一、进口企业需要具备哪些资质及进口这类产品都有哪些条件?进口收货人需具备的资质:1.经营食品资质或食品流通许可证;2.进出口权;3.自动进口许可证;备注:没有以上资质或者资质不全,可以用代理资质双抬头报关;个人进口全用代理资质。关于肉类食品进口条件,海关条件:A.入境货物通关单;B.出境货物通关单;P:进境动植物、动植物产品检疫;Q:出境动植物、动植物产

    2022年9月16日

发表回复

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

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