前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >洛谷 || 奖学金(排序)

洛谷 || 奖学金(排序)

作者头像
小Bob来啦
发布于 2021-05-27 08:08:35
发布于 2021-05-27 08:08:35
75700
代码可运行
举报
运行总次数:0
代码可运行

人始终要保持活力,保持坚强,不论遭遇怎样的失败与挫折,这是我唯一能做的事情。

题目描述

某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。

任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是:

7 279

5 279

这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是 279(总分等于输入的语文、数学、英语三科成绩之和) ,但学号为77的学生语文成绩更高一些。如果你的前两名的输出数据是:

5 279

7 279

则按输出错误处理,不能得分。

输入格式

共n+1行。

第1行为一个正整数n(≤300),表示该校参加评选的学生人数。

第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。第jj行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1 n(恰好是输入数据的行号减1)。

所给的数据都是正确的,不必检验。

//感谢 黄小U饮品 修正输入格式

输出格式

共5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。

输入输出样例

实例1:

输入

6

90 67 80

87 66 91

78 89 91

88 99 77

67 89 64

78 89 98

输出

6 265

4 264

3 258

2 244

1 237

实例2:

输入

8

80 89 89

88 98 78

90 67 80

87 66 91

78 89 91

88 99 77

67 89 64

78 89 98

输出

8 265

2 264

6 264

1 258

5 258

源代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>

int main() {
    int n, a[301], b[301], c[301], d[301], i, j, m, z;
    std::cin >> n;
    //给数组赋序号,切记没有0
    for (i = 1; i <= n; i++) {
        d[i] = i;
    }
    //输入各科的成绩
    for (i = 1; i <= n; i++) {
        std::cin >> a[i] >> j >> m;
        b[i] = c[i] = a[i] + j + m;
    }
    //(总分少)或者(总分一样,语文少),则交换
    for (i = 1; i < n; i++) {
        for (z = i + 1; z <= n; z++) {
            if (c[i] < c[z] || (c[i] == c[z] && a[i] < a[z])) {
                std::swap(c[i], c[z]);
                std::swap(a[i], a[z]);
                std::swap(d[i], d[z]);
            }
        }
    }
    //输出符合的前五名
    std::cout << d[1] << " " << b[d[1]];
    for (i = 2; i <= 5; i++) {
        std::cout << std::endl << d[i] << " " << b[d[i]];
    }
    return 0;
}

To:本题主要思想是确定每个同学的编号以及在排序时不能忘记编号也是要跟着成绩走的。其次需要注意的是变量名不能弄混,平时写可以在变量旁写上注释。

运行结果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员Bob 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
利用开源审计插件对mysql进行审计
假设这么一个情况,你是某公司mysql DBA,某日突然公司数据库中的所有被人为删了。尽管有数据备份,但是因服务停止而造成的损失上千万,现在公司需要查出那个做删除操作的人。
SEian.G
2021/03/03
3.2K0
等保测评2.0:MySQL安全审计
虽然遇到这些插件的概率不高,我还是把这些插件的基本参数都列出来,到时候如果真遇到了,也不至于一头雾水。
FB客服
2020/03/24
6K0
等保测评2.0:MySQL安全审计
MySQL审计插件使用和对比
数据库审计是数据库安全中很重要的一个环节,说到审计,有些上市公司内部还会根据塞班斯法案,进行404审计等等。 而最基本的审计还是需要的,有些同学可能感觉审计会有些鸡肋,其实非也,开审计的功能势必会影响性能,如果不开又会有遗漏,这种防患于未然,把问题都扼杀在摇篮之中,通过这种规范和制度来做最后一道防线。 MySQL中也需要审计,不说大的方向,就说和我们工作更贴近的,比如某一个业务在某个时间点出现了异常,因为异常操作(比如DDL)导致系统出现了严重的问题,这个时候如果要查看这个问题的具体情
jeanron100
2018/03/22
4K0
MySQL审计插件使用和对比
MySQL监视——审计日志
MySQL的企业版中提供了审计日志功能。通过审计日志可以记录用户的登录、连接、执行的查询等行为,输出XML格式或者JSON格式的日志文件。
MySQLSE
2023/08/31
1K0
MySQL监视——审计日志
hhdb数据库介绍(9-21)
控制节点切换前是否先判断集群所有成员都能ping通,true开启false关闭。 例:A机房和B机房构成双活集群,A机房3个计算节点,B机房2个计算节点,primary节点在B机房。AB机房网络隔离后,A机房做为多数派会选出主,B机房无法形成多数派而cluster shutdown,但是在B机房primary未下线时,收到A机房主存储节点的心跳超时导致存储节点发生切换(开启此参数可避免此类情况)。
恒辉信达
2024/12/03
1170
hhdb数据库介绍(9-26)
启动时,主存储节点在首次初始化失败后,会一直重连;若存在备存储节点且超过主存储节点初始化超时时间,则会切换到可用的备存储节点,若该节点所有存储节点都初始化失败,则整个节点不可用。如果数据节点初始化失败且无可用逻辑库,或数据节点下无存储节点,则计算节点无法启动。
恒辉信达
2024/12/03
950
MySQL安全插件-数据库审计
数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断。它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户事后生成合规报告、事故追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全。
Power
2025/03/01
6280
mysql审计开启–两种方法
这里使用的是macfee的mysql audit插件,虽然日志信息比较大,对性能影响大,但是如果想要开启审计,那也应该忍受了。介绍几个参考地址:
全栈程序员站长
2022/07/20
2.4K0
技术分享 | 细说 MySQL 用户安全加固策略
作者:官永强,爱可生 DBA 团队成员,擅长 MySQL 运维方面的技能。热爱学习新知识,亦是个爱打游戏的宅男。
爱可生开源社区
2023/12/20
4590
技术分享 | 细说 MySQL 用户安全加固策略
hhdb数据库介绍(9-22)
用于设置数据节点空闲检查的定时任务的时间。计算节点会定时检查后端存储节点连接情况,关闭多余的空闲连接或者补足连接池的可用连接,保持连接不被存储节点关闭,维护连接池的正常运作。
恒辉信达
2024/12/03
940
四十八、审计功能
审计是数据库安全中很重要的一个环节,它能够实时记录数据库的操作,帮助数据库管理员对数据库异常行为进行分析审计。审计会详细记录谁在什么时间执行了什么操作。MySQL 社区版没有自带的审计功能或插件,只有 MySQL 商业版中有审计功能。审计记录的日志如下:
喵叔
2021/07/14
4470
【MySQL】MySQL审计操作记录
简介: 数据库审计能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库受到的风险行为进行告警,对攻击行为进行阻断,它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户事后生成合规报告、事故追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全。
MySQL技术
2019/09/08
4.4K0
技术分享 | MySQL 使用 MariaDB 审计插件
专注于 Oracle、MySQL 数据库多年,Oracle 10G 和 12C OCM,MySQL 5.6 ,5.7,8.0 OCP。现在鼎甲科技任顾问,为同事和客户提供数据库培训和技术支持服务。
爱可生开源社区
2020/09/14
1.2K0
Oracle标准审计实战过程详解
最近很多人咨询我Oracle的审计功能,下面我用一个非常清晰的过程给大家讲解一个相关案例。
数据和云
2021/08/27
6610
技术分享 | 聊聊 MySQL 关机的故事
这两天看到一个 MySQL 群里在讨论一个有趣的话题,大家平时都是怎么关闭 MySQL 的,一个大佬还发起了一个投票。投票如下:
爱可生开源社区
2022/04/06
3460
技术分享 | MariaDB 10.1.9 迁移到 MySQL 5.7.25
爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查,对数据库有兴趣,对技术有想法。一入 IT 深似海,从此节操是路人。
爱可生开源社区
2020/06/12
2.1K0
技术分享 | MariaDB 10.1.9 迁移到 MySQL 5.7.25
MySQL审计插件介绍
数据库审计功能主要将用户对数据库的各类操作行为记录审计日志,以便日后进行跟踪、查询、分析,以实现对用户操作的监控和审计。审计是一项非常重要的工作,也是企业数据安全体系的重要组成部分,等保评测中也要求有审计日志。对于 DBA 而言,数据库审计也极其重要,特别是发生人为事故后,审计日志便于我们进行责任追溯,问题查找。
MySQL技术
2022/11/22
8590
MySQL审计插件介绍
MySQL审计数据归档演示
在此博客中,我将演示如何在许多mysql实例之间将审计日志进行合并归档。在后续文章中,我将展示如何通过在该归档文件上创建一个简单的哈希链来扩展此示例–这样您就可以证明是否可以通过任何方式对其进行了修改或污染,以及在何处进行了修改。
MySQLSE
2020/11/09
1.1K0
MySQL企业版之Audit(审计)初体验
MySQL企业版的优势在于有原厂技术支持,以及几个相当不错的功能插件,例如Transparent Data Encryption (TDE)(透明数据加密)、Audit(审计)、thread pool(线程池)、firewall(防火墙)、Data Masking(数据打码)等功能,还有企业级高可用、备份、监控等工具套件。
老叶茶馆
2020/06/24
2K0
【腾讯云CDB】MySQL审计功能大揭秘
腾讯云数据库 TencentDB
2017/12/28
5.3K0
【腾讯云CDB】MySQL审计功能大揭秘
相关推荐
利用开源审计插件对mysql进行审计
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验