P1093 [NOIP2007 普及组] 奖学金---你想要吗?

2024-01-19 19:44

本文主要是介绍P1093 [NOIP2007 普及组] 奖学金---你想要吗?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

# [NOIP2007 普及组] 奖学金

## 题目背景

NOIP2007 普及组 T1

## 题目描述

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

任务:先根据输入的 $3$ 门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。

注意,在前 $5$ 名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是:

```plain
7 279  
5 279
```

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

如果你的前两名的输出数据是:

```plain
5 279  
7 279
```

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

## 输入格式

共 $n+1$ 行。

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

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

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

## 输出格式

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

## 样例 #1

### 样例输入 #1

```
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
```

### 样例输出 #1

```
6 265
4 264
3 258
2 244
1 237
```

## 样例 #2

### 样例输入 #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
```

### 样例输出 #2

```
8 265
2 264
6 264
1 258
5 258
```

看到这道题时,你是否也想要奖学金呢?那就要好好努力了呀!

言归正传,我们开始解这道题:

首先这道题的思路很清晰---排序(先按照总分大小排,其中分数相同的按语文成绩的多少进行排序),我们第一时间想到的是排序的各种方法如冒泡,插入,快速,堆,桶等,这里我选择的是冒泡排序,这个相对于简单一些,如果出现超时在换另一种排序方法。

对于数据我们可以分别记忆存储。

直接上代码

#include<stdio.h>
int main() {int n, arr[321] = {0}, brr[321]={0}, crr[321]={0}, a, b, c,y;scanf("%d", &n);for (int i = 0;i < n;i++) {scanf("%d%d%d", &a, &b, &c);arr[i] = a;brr[i] = a + b + c;crr[i] = i + 1;}for (int i = 0;i < n-1;i++) {for (int j = 0;j < n-i-1;j++) {if (brr[j] <brr[j + 1]) {a = brr[j];brr[j] = brr[j + 1];brr[j + 1] = a;b = crr[j];crr[j] = crr[j + 1];crr[j + 1] = b;c = arr[j];arr[j] = arr[j + 1];arr[j + 1] = c;}else if(brr[j] == brr[j + 1] &&arr[j + 1]>arr[j]){a = brr[j];brr[j] = brr[j + 1];brr[j + 1] = a;b = crr[j];crr[j] = crr[j + 1];crr[j + 1] = b;c = arr[j];arr[j] = arr[j + 1];arr[j + 1] = c;}}}for (int i = 0;i < 5;i++) {printf("%d %d\n", crr[i], brr[i]);}return 0;}

加油!为了奖学金。

这篇关于P1093 [NOIP2007 普及组] 奖学金---你想要吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/623477

相关文章

想要从OPPO手机恢复数据?免费OPPO照片视频恢复软件

此实用程序可帮助那些寻找以下内容的用户: 在OPPO手机中格式化存储卡后可以恢复图片吗?我删除了 OPPO上的视频和图片,我感觉很糟糕,因为里面有我在拉斯维加斯拍摄的视频和照片 免费OPPO照片视频恢复软件 您能恢复OPPO上已删除的照片吗?我不小心格式化了OPPO SD 卡,有希望恢复已删除的照片吗? 救命!我在清理时删除了我的照片,我的问题是是否有任何免费软件可以从OPPO中恢复已

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ

信息学奥赛初赛天天练-83-NOIP2014普及组-基础题2-输入设备、输出设备、操作系统、二进制、整数除法、while、do while循环

1 NOIP 2014 普及组 基础题2 4 以下哪一种设备属于输出设备( ) A 扫描仪 B 键盘 C 鼠标 D 打印机 5 下列对操作系统功能的描述最为完整的是( ) A 负责外设与主机之间的信息交换 B 负责诊断机器的故障 C 控制和管理计算机系统的各种硬件和软件资源的使用 D 将没有程序编译成目标程序 11 下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( ) A 296

免费SSL证书大全,加速普及网站实现HTTPS加密

免费SSL证书大全,加速普及网站实现HTTPS加密   SSL 证书用于加密 HTTP 协议,实现网站通过HTTPS加密协议访问。随着国内外各大网站实现全站 HTTPS 协议,以及搜索引擎对使用 HTTPS 协议网站的更加友好,加之互联网对数据和隐私安全的加强,网站添加 SSL 证书并实现 HTTPS 加密协议访问已经成为趋势和必然。 SSL证书大全​zzzjtd.com 而对于给网站添加

不管夫妻还是情人,想要长相厮守、生活幸福美满,就这两个字!

你好,我是腾阳。 近年来,娱乐圈频传“闪婚闪离”的消息,每一次都牵动着公众敏感的神经。 从光鲜亮丽的荧幕情侣到分道扬镳的路人,他们的故事如同一面镜子,映照出现代人情感关系的脆弱与浮躁。 相比之下,那些能够在公众视野中长久保持恩爱如初的夫妻,如邓超与孙俪。 相互扶持,共同成长,在繁忙的工作之余,也不忘经营彼此的小确幸。 他们的婚姻,成为了无数人心中的榜样。 我们观察身边那些美满幸

讨论运维监控工具的普及程度

在讨论运维监控工具的普及程度时,加入PIGOSS BSM产品的分析是非常有意义的,因为PIGOSS BSM是一款在中国市场具有一定影响力的运维监控工具。 PIGOSS BSM运维监控工具是一款综合性的IT运维监控解决方案,它能够对多层次的IT资源进行监测,包括但不限于性能监测、事件管理、报表管理等功能模块。PIGOSS BSM的一个独特之处在于其拓扑关联配置工具,这使得用户可以根据自身的I

P2239 [NOIP2014 普及组] 螺旋矩阵

P2239 [NOIP2014 普及组] 螺旋矩阵 50分 //O(n^2)复杂度,能算n<=10000的 #include <bits/stdc++.h>using namespace std;//row当前行, column当前列, left:左边界,righ:右边界,top:上边界,bottom:下边界 int n, x, y, ans, row=1, column=0, lef,

新电脑Win11系统想要降级为Win10怎么操作?

前言 现在的电脑大部分都是Windows 11系统,组装机还好一些,如果想要使用Windows 10,只需要在安装系统的时候选择Windows 10镜像即可。 但是对于新笔记本、厂商的成品机、一体机来说,只要是全新的电脑,基本上都是Windows 11了。 有部分小伙伴就觉得,Windows 11也挺好,为啥非得要Windows10呢? 那是因为Windows10经过了多年的沉淀更

Mudo03 vscode配置相应的文件的搜索路径,库文件的搜索路径以及想要的链接库

使用muduo库,需要链接libmuduo_base.so、libmuduo_net.so 、libpthread.so VScode上如何配置相应的头文件的搜索路径?库文件的搜索路径? 文件的搜索路径:         -I:头文件搜索路径         -L:库文件搜索路径         -Imuduo_net :库名称 头文件和库文件搜索路径主要在.json文件中设置:

macos 一直弹出 “git-credential-osxkeychain”想要访问你的钥匙串中的密钥“github.com” 解决方法

macos 一直弹出 “git-credential-osxkeychain”想要访问你的钥匙串中的密钥“github.com” 解决方法 现在网络上关于这个问题的解决方案大部分都是打开钥匙串访问,然后删除github的密钥,但是这个方法其实并不奏效。具体的解决方法如下(二选一即可) 方法一 使用GitHub CLI 首先,使用brew安装GitHub CLI: brew install