算法-排序(sort)

[NOIP2009]分数线划定

题目描述

世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

输入描述:

第一行,两个整数n,m(5≤n≤5000,3≤m≤n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m表示计划录取的志愿者人数。输入数据保证m*150%向下取整后小于等于n。
第二行到第n+1行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000≤k≤9999)和该选手的笔试成绩s(1≤s≤100)。数据保证选手的报名号各不相同。

输出描述:

第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。
从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。
#include<iostream>
#include<algorithm>
using namespace std;struct person
{int id;int grade;
}a[5001];
bool cmp(person a, person b)
{if (a.grade == b.grade)return a.id < b.id;return a.grade > b.grade;
}
int main()
{int n; cin >> n;int m; cin >> m;for (int i = 1; i <= n; i++){cin >> a[i].id >> a[i].grade;}sort(a + 1, a + 1 + n,cmp);int len=a[int(m*1.5)].grade;int cnt=0;for(int i=1;i<=n;i++){if(a[i].grade>=len)cnt++;}cout<<len<<" "<<cnt<<endl;for(int i=1;i<=cnt;i++){cout<<a[i].id<<" "<<a[i].grade<<endl;}return 0;
}

[NOIP2007]奖学金

题目描述

某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。
任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是:
7 279
5 279
这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是 279 (总分等于输入的语文、数学、英语三科成绩之和) ,但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是:
5 279
7 279
则按输出错误处理,不能得分。

输入描述:

第1行为一个正整数n,表示该校参加评选的学生人数。
第2到n+1行,每行有3个用空格隔开的数字,每个数字都在O到100之间z第1行的3个数 字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为l~n (恰好是输入数据的行号减1)。
所给的数据都是正确的,不必检验。

输出描述:

共有5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。
#include<iostream>
#include<algorithm>
using namespace std;struct stu
{int id;int chinese;int math;int english;int sum;
}a[301];
bool cmp(stu &a,stu &b)
{if(a.sum==b.sum){if(a.chinese==b.chinese)return a.id<b.id;return a.chinese>b.chinese;}return a.sum>b.sum;
}
int main()
{int n;cin>>n;for(int i=1;i<=n;i++){a[i].id=i;cin>>a[i].chinese>>a[i].math>>a[i].english;a[i].sum=a[i].chinese+a[i].math+a[i].english;}sort(a+1,a+1+n,cmp);for(int i=1;i<=5;i++){cout<<a[i].id<<" "<<a[i].sum<<endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/660919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何提高工业数据采集的效率和准确性-天拓四方

随着工业4.0和智能制造的兴起&#xff0c;工业数据采集的重要性日益凸显。通过数据采集&#xff0c;企业能够实时监控生产过程&#xff0c;优化资源配置&#xff0c;提高生产效率。在实时监控、生产优化、质量控制等方面&#xff0c;有效的数据采集系统能够为企业提供宝贵的洞察…

幻兽帕鲁服务器多少钱一台?腾讯云新版报价

腾讯云幻兽帕鲁服务器4核16G、8核32G和16核64G配置可选&#xff0c;4核16G14M带宽66元一个月、277元3个月&#xff0c;8核32G22M配置115元1个月、345元3个月&#xff0c;16核64G35M配置580元年1个月、1740元3个月、6960元一年&#xff0c;腾讯云百科txybk.com分享腾讯云幻兽帕鲁…

java实现六大排序算法

一、冒泡排序算法 package com.xxx.order;public class maopao {public static void main(String[] args) {int[] arr {64, 34, 25, 12, 22, 11, 90};bubbleSort(arr);System.out.println("Sorted array: ");printArray(arr);}static void bubbleSort(int[] arr) {…

QT中一种隐蔽的死锁

造成死锁的情况只有两种: 1.单线程死锁:同一线程对同一个锁连续加锁两次会造成死锁; 延伸:在同一个线程中,一个事件分支中对锁A已经加锁,并且引用了QCoreApplication::processEvents(QEventLoop::AllEvents, 100)或者QCoreApplication::processEvents(QEventLoop::Exclud…

MongoDB安装以及卸载,通过Navicat 15 for MongoDB连接MongoDB

查询id&#xff1a; docker ps [rootlocalhost ~]# docker stop c7a8c4ac9346 c7a8c4ac9346 [rootlocalhost ~]# docker rm c7a8c4ac9346 c7a8c4ac9346 [rootlocalhost ~]# docker rmi mongo sudo docker pull mongo:4.4 sudo docker images 卸载旧的 sudo docker stop mong…

线上品牌展厅有哪些优点,如何打造线上品牌展厅

引言&#xff1a; 在当今数字化时代&#xff0c;品牌展示的方式也在不断演变&#xff0c;线上品牌展厅作为一种新型的展示方式&#xff0c;正逐渐成为品牌宣传的新宠。但是为什么需要线上品牌展厅&#xff0c;线上品牌展厅有哪些优势呢&#xff1f; 一&#xff0e;为什么需要线…

Java虚拟机内存模型概念

Java虚拟机的内存可以分三个区域&#xff1a;栈&#xff08;stack&#xff09;、堆&#xff08;heap&#xff09;、方法区&#xff08;method area&#xff09;。 虚拟机栈的特点&#xff1a; 1.栈描述的是方法执行的内存模型&#xff0c;每个方法被调用都会创建一个栈帧&…

学习python第三天

一.数据类型 1.获取数据类型 x 10 print(type(x))""" 输出 <class int> """2.复数类型&#xff08;complex&#xff09;详解 复数&#xff08;Complex&#xff09;是 Python 的内置类型&#xff0c;直接书写即可。换句话说&#xff0c…

前后端分离,RSA加密传输方案

1.原理 RSA是一种非对称加密算法。通过生成密钥对,用公钥加密,用私钥解密。对于前后端分离的项目,让前端获取到公钥对敏感数据加密,发送到后端,后端用私钥对加密后的数据进行解密即可。 2.实现 RSA工具类:提供秘钥对生成、公钥获取、私钥解密的方法。 public class R…

浅谈 Unix Timestamp 时间戳

Linux 时间戳通常指的是 Unix 时间戳&#xff0c;即自 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数。这个时间戳在许多 Unix 系统和类 Unix 系统&#xff08;包括 Linux&#xff09;中广泛使用。我们日常工作学习中也是很常用的。 但是很多刚学习的小伙伴对这一串数字不知道…

-代码分享-

归并排序的递归函数 void D_MereSort(int a[], int left, int right, int* tmp) { //left和right分别为递归区间的左右端点的下标 //把要归并的两边的区间递归到各只有1个元素就停 if (left > right) return; //mid为递归区间中间下标 int mid (left right) / 2; //递归…

软件工程知识梳理2-需求分析

需求分析时软件定义的最后一个阶段&#xff0c;它的基本任务时准确回答系统必须做什么的问题。 输出&#xff1a;本阶段必须的输出时软件需求规格说明书。 角色&#xff1a;需求分析员 参与者&#xff1a;用户、需求分析员 需求分析遵循的准则&#xff1a; 必须理解并描述问…

【阿里巴巴】【淘天集团天猫超市食品生鲜供应链】技术线-高级Java研发工程师-供应链计划

所属部门:淘天集团&#xff5c;学历:本科 | 工作年限: 3 年 职位描述 负责淘天集团天猫超市&食品生鲜供应链计划系统研发&#xff0c;包括经营计划&#xff0c;需求计划&#xff0c;补货计划&#xff0c;调拨计划&#xff0c;库存健康&#xff0c;资源计划等多个核心业务负…

各品牌主板快速启动热键对照表及CMOS进入方法

各品牌主板快速启动热键对照表 主板品牌 启动按键 笔记本品牌 启动按键 主机品牌 启动按键 华硕主板 F8 联想笔记本 F12 联想台式机 F12 技嘉主板 F12 宏碁笔记本 F12 惠普台式机 F12 微星主板 F11 华硕笔记本 ESC 宏碁台式机 F12 梅捷主板 F9 惠普笔…

Linux安装docker以及docker安装软件

1.docker安装 依次运行添加yum源 # 更新yum软件 yum update# 安装epel-release yum install -y epel-release# 清理 yum clean all# 列出所有可用软件包 yum list安装并运行docker yum install -y docker-io systemctl start docker检查安装结果docker info 2.docker安装Rabb…

「优选算法刷题」:寻找峰值

一、题目 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ 。 你必须实现时间复…

elementui 开始结束时间可以选择同一天不同时间段

先在main.js中导入 import moment from moment <el-row><el-col :span"12"><el-form-item label"考试开始时间" prop"startTime"><el-date-picker v-model"shiJuanXinXiForm.startTime" style"width: 100…

异步解耦之RabbitMQ(二)__RabbitMQ架构及交换机

异步解耦之RabbitMQ(一) RabbitMQ架构 RabbitMQ是一个基于AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;协议的消息代理中间件&#xff0c;它通过交换机和队列实现消息的路由和分发。以下是RabbitMQ的架构图&#xff1a; Producer&#xff08;生产者&#…

孪生卷积神经网络(Siamese Convolutional Neural Network)的设计思路

孪生卷积神经网络&#xff08;Siamese Convolutional Neural Network&#xff09;是一种特殊类型的卷积神经网络&#xff0c;主要用于处理需要成对比较的数据&#xff0c;例如判断两个输入是否相似。 以下是孪生卷积神经网络的基本结构&#xff1a; 输入层&#xff1a;这一层…

019代码结构

什么是顺序结构&#xff1f; 什么是选择结构&#xff1f; boolean flag true; // 结果为true会执行大括号内的代码&#xff0c;否则不执行直接跳过 if(flag true){System.out.println("flag为真"); } 双if选择结构 if(flag true){// 结果为true会执行大括号内的代…