04:奖学金

04:奖学金

总时间限制: 
1000ms

内存限制: 
65536kB
描述

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

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

7 279

5 279

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

5 279

7 279

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

输入
包含n+1行:

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

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

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

50%的数据满足:各学生的总成绩各不相同;
100%的数据满足: 6<=n<=300。

输出
共有5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。
样例输入
样例 #1:
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98

样例 #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
样例输出
样例 #1:
6 265
4 264
3 258
2 244
1 237

样例 #2:
8 265
2 264
6 264
1 258
5 258
来源
NOIP2007复赛 普及组 第一题

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
using namespace std;
struct stu{
	int yv;
	int shu;
	int ying;
	int zong;
	int hao;
}stu1[1000001];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	 {
	 	cin>>stu1[i].yv>>stu1[i].shu>>stu1[i].ying;
	 	stu1[i].zong=stu1[i].yv+stu1[i].shu+stu1[i].ying;
	 	stu1[i].hao=i;
	 }
	 for(int i=1;i<=n-1;i++)
	  {
	  	for(int j=i;j<=n;j++)
	  	 {
	  	 	if(stu1[i].zong<stu1[j].zong)
	  	 	 {
	  	 	 	swap(stu1[i],stu1[j]);
			 }
			 if(stu1[i].zong==stu1[j].zong)
			  {
			  	if(stu1[i].yv<stu1[j].yv)
			  	 {
			  	 	swap(stu1[i],stu1[j]);
				   }
			  }
		   }
	  }
	  for(int i=1;i<=5;i++)
	   {
	   	cout<<stu1[i].hao<<" "<<stu1[i].zong;
	   	cout<<endl;
	   }
	   return 0;
}
时间: 2024-10-25 06:29:30

04:奖学金的相关文章

数据排序 第二讲( 各种排序方法 结合noi题库1.10)

先来个题练练手吧! 例题 04:奖学金 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的. 任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名

整理小朋友在noi.openjudge上的作业(1)

NOI(题库正在建设中,做题纪录有可能会被删除,请注意) 第一章的统计放前面 1 编程基础之输入输出 10 0 0% 最基础有空补刷 2 编程基础之变量定义.赋值及转换 10 0 0% 最基础有空补刷 3 编程基础之算术表达式与顺序执行 20 0 0% 最基础有空补刷 4 编程基础之逻辑表达式与条件分支 21 0 0% 最基础有空补刷 5 编程基础之循环控制 45 10 22% 最基础有空补刷 6 编程基础之一维数组 15 5 33% 最基础有空补刷 7 编程基础之字符串 35 0 0% 有必要

精体展矿计运界布属点世据真起验青kPswaoY3w

社保划到税务征收,将大大提升社保费的征管效率.税务的征管能力是目前而言最强的,以后税务征收社保不是代收,属于本职了. 之前税局要把社保信息和交个税的工资比对起来有困难!现在好了,个税是自己的,社保也是自己的,比对困难?不存在的! 这一变革,会给那些不给员工上社保.不全额上社保的企业致命一击! 最新案例 前段时间的发改委关于限制特定严重失信人乘坐民航的一则意见--发改财金[2018]385号,其中还有税务总局的联合署名. http://weibo.com/20180408PP/2309279811

而广除还状么林验以适调半去gbQwsadnbQjN

为了从不同环节,尤其与广大使用人群直接关系的环节反映质量状况,对共享自行车投放点.运营仓库.生产企业等不同环节的产品抽查,覆盖了共享自行车从成品出厂到待投放的关键环节. 该负责人称,根据新车投放情况,结合共享自行车行业市场占有分布特点,本次重点抽查了摩拜.ofo.Hellobike三个品牌的产品,占本次抽查批次总数的83.3%.其中,在天津.无锡.武汉.广州.深圳.东莞6个城市抽查了9批次摩拜产品,占产品抽查批次总数的37.5%,抽查批次合格率88.9%,抽查不合格的1批次产品为待投放于广州市的

艰辛五天:Ubuntu14.04+显卡驱动+cuda+Theano环境安装过程

题记:从一开始不知道显卡就是GPU(虽然是学计算机的,但是我真的不知道-脑残如我也是醉了),到搞好所有这些环境前后弄了5天时间,前面的买显卡.装显卡和装双系统见另一篇博客装显卡.双系统,这篇主要记录我怎么配置后面的环境,虽然中间重装Ubuntu三次,后面安装过程也没差别. 基础平台:64-bit,Ubuntu14.04 1.安装NVIDIA驱动(参考技术文章,基本是复制啊,蟹蟹作者~) (1) 在官网下载NVIDIA驱动,根据自己买的型号选择下载,放到 /home/lvxia/ 目录下面,我下载

[转]ubuntu16.04安装teamviewer12依赖包解决

安装teamviewer下载地址:http://www.teamviewer.com/en/download/linux/ 下载的是:teamviewer_12.0.76279_i386.deb 安装时过程: ?  下载 sudo dpkg -i teamviewer_12.0.76279_i386.deb (正在读取数据库 ... 系统当前共安装有 180540 个文件和目录.) 正准备解包 teamviewer_12.0.76279_i386.deb  ... 正在将 teamviewer:

Install Windows10 + Ubuntu16.04 based on UEFI+GPT

博主电脑:lenove B40-80 一.进入Bios,设置我们之后装双系统将要用到的选项.(1)将USB boot设为Enabled(2)将boot mode设为UEFI(3)将secure boot关闭 二.USB安装Windows10,安装完毕,进入Windows10,在左下角的windows的图标上右键打开磁盘管理,可以利用压缩卷的方法,压缩出一块你想要拿来装ubuntu的分区,压缩完之后,这块分区会显示未分配,这个时候就不用动它了 二,准备一个U盘,用UltraISO将Ubuntu16

Ubuntu 16.04编译Android 7.1.2

折腾了很久,终于搞定了这个环境.记录一下. 准备工作: 1. 首先在Ubuntu官网上下载Ubuntu16.04的官方镜像.官网下载地址(这个找了很久,这里可以直接下载ISO镜像):https://launchpad.net/ubuntu/+cdmirrors 2. 建议直接安装到自己硬盘上(推荐双系统),不要在虚拟机上搞,除非你有足够大的SSD.我之前在虚拟机上试过,电脑的性能完全发挥不出来,后来搞了双系统,发现一切都是那么舒服. 3. Android源码下载方法:https://lug.us

Ubuntu16.04 install eclipse-jee-oxygen-R-linux-gtk-x86_64

下面如何在Ubuntu16.04 下面怎么下载Java EE并创建在桌面快捷上 下载Java EE: eclipse下载Java EE官网: http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/oxygenr 选择电脑对应的Linux 32-bit 或者 Linux 64-bit 点击进去 选择 DOWNLOAD(下载) 下面的 >>Select Another Mirror(选择另一个镜像) 会显示