noip2007 奖学金 (排序)

2023-11-03

A1159. 奖学金
时间限制: 1.0s   内存限制: 256.0MB  
总提交次数: 797   AC次数: 339   平均分: 60.95
将本题分享到:
       
   
试题来源
  NOIP2007 普及组
问题描述
  某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到 低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯 一确定的。
  任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。注意,在前5名同学中,每 个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分)是:
  7 279
  5 279
  这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是279(总分等于输入的语文、数 学、英语三科成绩之和),但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是:
  5 279
  7 279
  则按输出错误处 理,不能得分。
输入格式
  第1行为一个正整数n,表示该校参加评选的学生人数。
  第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为 1~n(恰好是输入数据的行号减1)。
  所给的数据都是正确的,不必检验。
输出格式
  共有5行,每行是两个用空格隔开的正整数, 依次表示前5名学生的学号和总分。
样例输入
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
样例输入
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
数据规模和约定
  50%的数据满足:各学生的总成绩各不相同
  100%的数据满足:6<=n<=300
代码:
#include<cstdio>
#include<algorithm>
#define maxn 300
using namespace std;
struct tnode{int s,c,b;}a[maxn+20];
int n;

bool cmp(tnode x,tnode y)
{
  if(x.s>y.s)return 1;
  if(x.s<y.s)return 0;
  if(x.c>y.c)return 1;
  if(x.c<y.c)return 0;
  return x.b<y.b;
}

int main()
{
  int i,j,k,x,y,z;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
    {
      scanf("%d%d%d",&x,&y,&z);
      a[i].s=x+y+z,a[i].c=x,a[i].b=i;
    }
  sort(a+1,a+n+1,cmp);
  for(i=1;i<=5;i++)printf("%d %d\n",a[i].b,a[i].s);
  return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

noip2007 奖学金 (排序) 的相关文章

  • 几种排序算法比较

    前言 排序是按照关键字的非递减或非递增顺序对一组记录重新进行排列的操作 是对无规律的一组序列转化为递增或递减的操作 排序的稳定性 当排序记录中的关键字都部相同时 则任何一个记录的无序序列经过排序后得到的结果都唯一 反之 若存在两个或多个关键
  • 八大经典排序算法

    目录 插入排序 希尔排序 选择排序 堆排序 快速排序 hoare法 挖坑法 前后指针法 快速排序的优化 非递归实现快排 归并排序 计数排序 常见的八种排序算法 插入排序 希尔排序 选择排序 堆排序 冒泡排序 快速排序 归并排序 插入排序 思
  • 排序算法浅识

    排序说简单也简单 说复杂某些地方也是有些绕 这里做做笔记 帮助自己记忆和理解常接触的排序算法到底是什么鬼 什么是排序 其实就是排大小啊大佬 排序的稳定性 为何排序的稳定性很重要 在初学排序时会觉得稳定性有这么重要吗 两个一样的元素的顺序有这
  • 改进排序算法:快速排序(对冒泡排序的改进)

    快速排序的基本思想 通过一趟排序将待排序记录分割成独立的两部分 其中一部分记录的关键字均比另一部分记录的关键字小 则可分别对这两部分记录继续进行排序 以达到整个序列有序的目的 Partition函数的作用 选取当中的一个关键字 将它放到一个
  • 【每日一题】排序子序列(贪心)

    题目来源 牛客网 链接 排序子序列 题目描述 牛牛定义排序子序列为一个数组中一段连续的子序列 并且这段子序列是非递增或者非递减排序的 牛牛有一个长度为n的整数数组A 他现在有一个任务是把数组A分为若干段排序子序列 牛牛想知道他最少可以把这个
  • java中集合排序的常用方法总结

    前言 1 集合元素为数字 2 集合元素为对象 前言 平常的开发需求中肯定会遇到对集合排序问题 最常见的排序是在持久层中使用sql进行排序 但是由于业务限制或是其他原因 不能在持久层进行排序处理只能在逻辑层处理 那今天就来聊一下如何在逻辑层
  • 力扣每日一题——最大间距

    题目链接 class Solution public int maximumGap vector
  • 常用的前端排序

    冒泡排序 前一个与后一个作比较 如果前一个大于后一个 两者交换位置 对每一对相邻元素做第一步的操作 针对所有的元素重复以上的步骤 除了最后一个 let arr 1 3 4 5 8 6 4 1 3 2 for var i 0 i
  • Vector的自动排序Sort

    建立了一个结构体 然后用容器进行存放 想对其进行排序 vector支持sort函数 但是需要自己指定排序函数 方法如下 1 需要包含头文件 include
  • react native 实现拖拽排序

    先上效果图 意思意思 其实原理很简单 没有想的那么难 大家在改造的时候 请注意 this offset 的值 因为它关系到查找目标box的index 原理 手势释放时 所在的坐标值来推算出目标box的Index 本文代码可读性还需要改造 代
  • Axure Repeater系列---排序

    最新学习整理Repeater 网上也能找到一些实现排序的帖子 但是对于不熟悉中继器的同学来说 直接上手还是有点难度的 我也遇到一些坑 特整理记录下来 共同学习 学习之前最好了解下中继器的各个属性以及函数的含义 工具 Axure8 0 学习目
  • pgsql 自定义排序

    需求简述 用户要求查询数据表 使得输出结果指定中文字段chn name按照自定义的顺序 电 水 风 火等顺序排序 表内容 自定义排序sql 排序结果 工作中遇到的sql查询案例 如果有更简便的查询sql 欢迎多多交流
  • 交换和--排序

    LeetCode 面试题 16 21 交换和 给定两个整数数组 请交换一对数值 每个数组中取一个数值 使得两个数组所有元素的和相等 返回一个数组 第一个元素是第一个数组中要交换的元素 第二个元素是第二个数组中要交换的元素 若有多个答案 返回
  • 八大排序总结---- 数据结构 (图解法) 面试必会! ! !

    八大排序总结 目录 一 插入排序 InsertSort 二 希尔排序 ShellSort 三 选择排序 SelectSort 四 堆排序 HeapSort 五 冒泡排序 BubbleSort 六 快速排序 QuickSort 1 hoare
  • 泛型是实体类的集合,根据某一字段排序

    举例 List
  • SmartRefreshLayout 嵌套reycleview 长按排序下拉刷新

    布局文件
  • Redis基础数据结构——有序集合

    Redis基础数据结构 有序集合 redis的有序集合zset类似于Java的SoretedSet和HashMap的结合体 一方面它是一个set 可以保证内部value的唯一性 另一方面它可以给每个value赋予一个score 代表这个sc
  • mysql按照某个字段值内容排序

    举个栗子 假如一个商品下 有多个货品 各个货品的状态值都不一样 那么当只想展示商品中的某一个货品时 希望用户端看到的优先级是在售的货品中的一个 根据mysql提供的方法 field column value1 value2 value3 可
  • js 对数组对象进行排序

    let listData id 1 name 测试1 presenttime 1557883600000 id 2 name 测试2 presenttime 1580751813000 id 3 presenttime 1561448381
  • Python针对字符串进行去重和排序,for循环、列式推导法、set

    Python针对字符串进行去重和排序 第一种方法for循环 第二种方法就是列式推导法 第三种方法是用set 第一种方法for循环 首先针对与字符串的去重可以用到for循环去重 然后再把for循环之后的字符串变成数组 最后再用sort进行排序

随机推荐

  • c语言环境搭建(vs)2022版

    今天开个新专栏来写c语言的学习笔记正好学校下学期开始教c 现在先讲一下语言的环境搭建 先下载Visual Studio软件官网如下 Visual Studio 2022 IDE 适用于软件开发人员的编程工具 microsoft com 注意
  • Notes of Causal Inference Course by Brady Neal (Chap 1-5)

    本文是Youtube上causal inference课程系列的笔记 便于以后回顾 课程作者是Brady Neal 视频link在这里 这个lecture很长 但基本上看完Chapter 1和2就能大致知道causal inference的
  • DFT知识点扫盲——DFT概览

    IC设计公司 无论是研发 测试 PE 质量等岗位 对DFT的概念都不陌生 接下来的几篇内容 谈谈对DFT的理解 有聊得不对的地方 也请做DFT的同行 不吝赐教 1 什么是DFT DFT Design for Test 可测试性是一种设计属性
  • CMD(命令提示符)修改盘符

    进入命令提示符后 输入diskpart 进入diskpart exe list disk可以查询当前计算机磁盘 DISKPART gt list disk 磁盘 状态 大小 可用 Dyn Gpt 磁盘 0 联机 884 GB 1024 KB
  • [转]Tesseract-OCR学习系列(四)API

    原文地址 http www jianshu com p 3df039e42986 2016 09 20 Other API Examples 参考文档 https github com tesseract ocr tesseract wik
  • Python代码——卫星天空图绘制

    前期数据处理 33条消息 C 保存char int 和double到txt文件 他人是一面镜子 保持谦虚的态度的博客 CSDN博客 一 单系统代码 import math import matplotlib pyplot as plt f
  • 基于单片机的智能数字电子秤proteus仿真设计

    一 系统方案 1 当电子称开机时 单片机会进入一系列初始化 进入1602显示模式设定 如开关显示 光标有无设置 光标闪烁设置 定时器初始化 进入定时器模式 如初始值赋值 之后液晶会显示Welcome To Use Electronic Sc
  • 【统计学】stata 梳理输出命令逻辑关系 asdoc outreg2 logout esttab区别 优劣势

    一 概述 初学stata的时候对于stata输出的逻辑颇为疑惑 因为学python和cpp的时候输出函数就是那几个非常的简单 而statac的asdoc outreg2 logout 和 esttab 这些常见的命令在跳出来的时候往往分不清
  • 如何获得最新的太阳神三国杀 自己Qt编译

    太阳神三国杀 是一个基于C QT GUI框架的三国杀非官方开源软件 开发者 Moligaloo 开发者网站 http mogara org 可以在它上面体验一些不同的模式 尤其可以体验一些在测试服上运行 但却还未上线的新武将 相信有些小伙伴
  • postgresql 15源码浅析(1)—— postgres中的1号数据库

    摘要 在创建数据库集簇后 该集簇中默认会包含三个系统数据库template1 template0和postgres 其中template0和postgres都是在初始化过程中从template1复制出来的 这个理论大家想必不是那么陌生 但是
  • 医宗金鉴-01-伤寒论注

    from www oldzy com 老中医 见附件
  • 几个很实用的软件 root 改机 软改 硬改 改串号 改设备 参数生成器APK 电脑软件

    有没有好的安卓抹机软件或者改机 硬件信息修改器 Android改机 安卓改机软件 免root 不刷机 拒绝Xposed 实现 技术分析 改机软件排行榜大全 各种安卓抹机软件 手机抹机改机软件 机型修改器 一键新机改机软件全部免root破解下
  • vs2008中,在OCX控件中应用doc/view基本步骤

    1 利用向导创建一个MFC ActiveX Control控件CMyOCX 2 在工程中加入ActivDoc头文件和执行文件 class CActiveXDocTemplate public CSingleDocTemplate enum
  • 冒泡排序--python(详解)

    对于一个数组 4 6 3 9 第一轮 第一次比较 4 lt 6 两数不用进行交换 数组不变为 4 6 3 9 第二次比较 6 gt 3 两数进行交换 得到一个新数组 4 3 6 9 第三次比较 6 lt 9 两数不用进行交换 数组不变为 4
  • PHP Fatal error: Call to undefined function curl_init() in xxx

    找到php ini文件中这一行 本人是centos extension curl so 加上这一行 重启服务器 如果服务器报错说找不到curl so文件 下载php源码包http www php net downloads php tar
  • MyBaties 提示org.apache.ibatis.builder.BuilderException: The expression ‘’**' evaluated to a null val

    MyBaties 提示的错误信息 org apache ibatis builder BuilderException The expression evaluated to a null value 错误的原因 SQL 参数为List 集
  • java设计模式——状态模式

    状态模式的定义 一个对象在其内部状态改变的时候改变其行为 状态驱动 由上下文负责 代替if else 代替 switch case 普通方式 public String orderState String state if state eq
  • Percona-mysql server 5.5升级5.6

    http blog csdn net lqx0405 article details 50162557 系统环境 操作系统 CentOS 6 5 64 MySQL Percona server 5 5 5 6 一 升级的目的 为什么MySQ
  • Qt学习:Qt优雅地结束线程

    一 Qt线程 如果一个线程运行完成 就会结束 可很多情况并非这么简单 由于某种特殊原因 当线程还未执行完时 我们就想中止它 不恰当的中止往往会引起一些未知错误 比如 当关闭主界面的时候 很有可能次线程正在运行 这时 就会出现如下提示 QTh
  • noip2007 奖学金 (排序)

    A1159 奖学金 时间限制 1 0s 内存限制 256 0MB 总提交次数 797 AC次数 339 平均分 60 95 将本题分享到 查看未格式化的试题 提交 试题讨论 试题来源 NOIP2007 普及组 问题描述 某小学最近得到了一笔