20200322问题 E: 运动员名次

2023-11-16

题目描述

LZY经过他的不懈努力,终于成为第2147483647届奥运会名次排序员。现在给LZY N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”(“Gold Medal”, “Silver Medal”, “Bronze Medal”),第四名及以后的运动员给出他们的排名。
(注:分数越高的选手,排名越靠前。)
输入
测试样例由多组测试数据组成。每组测试数据第一行输入一个正整数 n ( 1 <= n <= 10000)代表运动员的数量。
接下来一行输入n个整数 ni ( 0 <= ni <= 1000000 ) 代表运动员的成绩,所有运动员的成绩都是不相同的。
输出
按照给LZY的运动员名单,输出各个运动员的成绩
样例输入 Copy
5
1 2 3 4 5
5
5 4 3 2 1
样例输出 Copy
5 4 Bronze Medal Silver Medal Gold Medal
Gold Medal Silver Medal Bronze Medal 4 5

就这么个问题做题的时候都快把我想疯了。唉,真是感叹自己能力不足啊。

我一开始的思路是结构体排序,初始排名node,排序后node1,然后两个for找当前i(node[i])在哪个j(node1[j])里面可以找到,即node[i].sc==node[j].sc,这样就把node1[j]的排名给输出来就好,然而两个for超时了,然后用二分查找也不行,于是换了一种思路。

在这里插入图片描述
解题思路:我给每个数字加个位置标记pos,第一个输入pos就是0,第二个就是1,第三个2…依次下去,然后根据pos来给数字相应的排名,例如node1[node[0].pos].rnk=-1,表示5这个数字的位置是2,然后这个位置的排名是第一名(Gold Medal).这样子最后输出只要按照位置顺序输出node1[i].rnk就行了

样例测试结果:
在这里插入图片描述

AC代码:

#include<iostream>
#include<algorithm>
using namespace std;
struct Node{
	int sc;
	int pos;
	int rnk;
}node[10010],node1[10010];

bool cmp(Node a, Node b){
	return a.sc>b.sc;
}

int main(){
	int n;
	while(cin>>n){
		for(int i = 0; i < n; i++){
			cin>>node[i].sc;
			node[i].pos = i;
			node1[i].sc = node[i].sc;
		}
		sort(node, node+n, cmp);
		int t = 0;
		for(int i = 0; i <= n-1; i++){
			if(i==0){
				node[i].rnk = -1;
				node1[node[i].pos].rnk = node[i].rnk;
			}
			else if(i==1){
				node[i].rnk = -2;
				node1[node[i].pos].rnk = node[i].rnk;
			}
			else if(i==2){
				node[i].rnk = -3;
				node1[node[i].pos].rnk = node[i].rnk;
			}
			else {
				node[i].rnk = i+1;
				node1[node[i].pos].rnk = node[i].rnk;
			}
		}
		for(int i = 0; i < n; i++){
			if(i==n-1){
				if(node1[i].rnk==-1)cout<<"Gold Medal";
				else if(node1[i].rnk==-2)cout<<"Silver Medal";
				else if(node1[i].rnk==-3)cout<<"Bronze Medal";
				else cout<<node1[i].rnk;
			}else{
				if(node1[i].rnk==-1)cout<<"Gold Medal"<<" ";
				else if(node1[i].rnk==-2)cout<<"Silver Medal"<<" ";
				else if(node1[i].rnk==-3)cout<<"Bronze Medal"<<" ";
				else cout<<node1[i].rnk<<" ";
			}
		}
		cout<<endl;
	}
	return 0;
}

总结:这里string数组直接放数字进去,我输出来的时候是方框,搞得我很头疼,迫不得已把字符串和数字分开来表示。

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

20200322问题 E: 运动员名次 的相关文章

  • SSM框架-SpringMVC详解

    springmvc概述 Springmvc是spring框架的一个模块 spring和springmvc无需中间整合层整合 Springmvc是一个基于mvc的web框架 表现层的三大任务 URL到controller的映射 http请求参
  • 【MySQL】20个经典面试题,全部答对月薪10k+

    欢迎加入QQ群讨论更多内容 群号 835870546 原文链接 http bbs 51cto com thread 1470880 1 html Part2 经典题目 1 MySQL的复制原理以及流程 基本原理流程 3个线程以及之间的关联
  • IntelliJ Idea 常用快捷键列表

    IntelliJ Idea 常用快捷键列表 Alt 回车 导入包 自动修正 Ctrl N 查找类 Ctrl Shift N 查找文件 Ctrl Alt L 格式化代码 Ctrl Alt O 优化导入的类和包 Alt Insert 生成代码
  • c++/c混合编程

    一 前言 代码从编写到能执行之前 需要经过编译 链接阶段 通常 编译每一个单元文件会生成目标文件 然后链接器会把各个目标文件链接起来生成可执行性文件 链接器之所以能把目标文件相互之间链接起来 就是通过查找目标文件中的唯一函数符号 即经过编译
  • 飞行管理计算机哪个公司,波音737-700的FMC(飞行管理计算机的讲解) VLN081

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 DEP ARR 进离场页面 第一行是你的起始机场 左1 右1 XXXX ARR gt 右2 HOLD 等待点设置叶面 等待点必须在航路上设置的一个点 并已经如入到LEGS 左1 XX 点的名称
  • 初识设计模式:单例模式

    设计模式 是一种思想 解决一个问题的方法有很多种 编程实现一个解决方法也有很多种 设计模式是一种针对不同问题 设计适合该问题的代码 在保证解决问题的基础上 还要保证能有好的扩展性 再有新需求的时候可以便捷的添加新模块 而非大动干戈的改变整个
  • cocos2d Sprite混合达到水流动效果

    使用Sprite混合setBlendFunc方式达到流动效果 void MainHomeLayer updateWaterFall float dt static float offset 0 if NULL waterFall water
  • Qt获取CPU编号和硬盘序列号

    windows下执行命令除了用cmd之外 还有个东西叫WMIC 非常强大 可以通过他获取很多信息 包括硬件信息 QString frmMain getWMIC const QString cmd 获取cpu名称 wmic cpu get N
  • Pandas中DataFrame数据合并、连接(concat、merge、join)

    最近在工作中 遇到了数据合并 连接的问题 故整理如下 供需要者参考 一 concat 沿着一条轴 将多个对象堆叠到一起 concat方法相当于数据库中的全连接 union all 它不仅可以指定连接的方式 outer join或inner
  • sql注入万能密码总结

    select from admin where username and password 第一种 当你已知管理员账号名为admin时可以直接尝试 admin select from admin where username admin a
  • QT/PyQT/PySide 通过富文本形式实现关键词高亮

    因为本质上都是QT 所以我标题带了QT 这个思路是没问题的 就是用C 得换个语言 最开始想根据之前一篇博客的思路进行高亮 PyQT PySide 文本浏览器跳转到指定行 并高亮指定行 qt 指定行高亮 Toblerone Wind的博客 C
  • 归一化互相关匹配

    设待匹配图像I的像素大小为MxN 模板T的像素大小为mxn 从图像I中任意选取一块像素大小为mxn的子图Ix y 其左上角在图像I中的坐标为 x y 可知坐标范围为 其中 M N分别为待匹配图像像素的行数和列数 m n分别为模板像素的行数和
  • [USF-XSim-62] ‘elaborate‘ step failed with errors.[Vivado 12-4473] Detected error while running sim

    USF XSim 62 elaborate step failed with error s Please check the Tcl console output and Vivado 12 4473 Detected error whi
  • linux中shell变量$#,$@,$0,$1,$2的含义解释/Shell中的${}、##和%%使用范例/export

    linux中shell变量 0 1 2的含义解释 变量说明 Shell本身的PID ProcessID Shell最后运行的后台Process的PID 最后运行的命令的结束代码 返回值 使用Set命令设定的Flag一览 所有参数列表 如 用
  • 【开集识别论文解读】Classification-Reconstruction Learning for Open-Set Recognition——CVPR2019

    论文原文 https arxiv org pdf 1812 04246v2 pdf 本文提出的CROSR利用潜在表示进行重建 并在不损害已知类别分类精度的情况下实现鲁棒未知检测 开集分类器可以检测不属于任何训练类的样本 通常 它们将概率分布
  • 机器翻译的数据预处理

    主要分为三大块 1 数据筛选 去除那些训练集中不对齐 质量差的句对 相关的技巧有很多 去重 重复的数据会使训练过程有偏 可以简单地去除完全相同的句对 也可以计算每两个句子之间的局部哈希值 把相似度小于某个阈值的句对都去除 去空行 空行不能提
  • 微信改昵称提醒服务器调试,修改微信“官方提醒”,最近超火!

    原标题 修改微信 官方提醒 最近超火 最近有一个修改微信 官方提醒 小尾巴的聊天玩法在抖音上火了 利用微信内置一个小功能套路了不少网友 效果就如封面图所示 是不是很神奇呢 具体怎么玩 来看看下面的具体操作吧 其实这个玩法是用到微信聊天里一个
  • hdu 2043 密码

    密码 Time Limit 2000 1000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 22640 Accepted Submissi
  • mysql数据库字段名为关键字出现的问题

    真是奇葩年年多 今天又一个 我们都知道 无论是保留字还是关键字或者特殊端口等等 都是系统预留的自用的 但是偏偏有人喜欢用这些 所以就导致其他人在用的时候出现各种错误 今天就记录一个我遇到的 关于mysql字段名的问题 今天在用sql查询时

随机推荐

  • 变量的 4 种存储类型

    存储类型 总共有四种存储类型的变量 分别为自动变量 auto 静态变量 static 外部变量 extern 以及寄存器变量 register auto 函数中所有的非静态局部变量 c语言可以指定类型如auto int a c 编译器不能指
  • Android开发:Eclipse中SqliteManager插件使用

    通常开发Android的时候要使用到数据库操作 会遇到下面小问题 数据库文件在哪 怎样訪问或操作 能够通过 打开DDMS gt File Explorer看到的sqlite数据库在eclipse 然后在文件夹 data data packa
  • facebook文本生成音乐项目-audiocraft 安装教程

    文章目录 所需环境 安装ffmpeg 克隆项目仓库 安装相关依赖库 运行项目 模型下载 自动下载模型失败 pytorch相关模型缓存目录 MusicGen 模型下载地址 所需环境 ffmpeg python gt 3 9 git cuda1
  • Python 通过execjs执行js代码抛出异常IndexError或语法错误

    问题 通过execjs执行JavaScript代码 虽然JavaScript代码没有语法错误 但是python解释器抛出异常IndexError list index out of range 语法错误 抛出异常语法错误的解决步骤 1 根据
  • MFC线程退出方法

    MFC使用AfxBeginThread创建线程退出方法 CWinThread myThread 线程 bool isThreadBegin false 线程退出 执行控制 创建线程 void CDlg OnButtonCreateThrea
  • python启动一个下载服务器

    1 把Desktop目录当成根目录 cd Desktop 2 python2启动下载服务器 python2 m SimpleHttpServer 3 python3启动下载服务器 python3 m http server 4 浏览器访问h
  • 解决dubbo问题:forbid consumer

    原文地址 http www jameswxx com e4 b8 ad e9 97 b4 e4 bb b6 e8 a7 a3 e5 86 b3dubbo e9 97 ae e9 a2 98 ef bc 9aforbid consumer 线
  • 应急响应(日志/流量)

    事件分类 有害程序事件 网络攻击事件 信息破坏事件 事件内容安全事件 设备设施故障事件 灾害性事件 其它事件 应急响应工作流程 准备阶段 应急团队建设 应急方案制定 等级保护测评 检测阶段 判断安全设备告警 判断事件类型 判断事件级别 确定
  • 在SQL Server 中读取 AD 信息

    http www myexception cn sql server 1011477 html EXEC sp addlinkedserver ADSI Active Directory Services 2 5 ADSDSOObject
  • CentOS7升级OpenSSL版本

    1 CentOS7 6默认安装的openssl版本为 openssl version 2 下载最新的openssl wget https www openssl org source openssl 1 1 1c tar gz wget无法
  • Vue中mixins(混入)的介绍和使用

    Vue中mixins 混入 的介绍和使用 一 什么是Mixins 二 何时使用Mixins 三 如何创建Mixins 四 如何使用Mixins 五 Mixins的特点 5 1 方法和参数在各组件中不共享 5 2 Mixins 合并冲突 5
  • 龙书笔记(1)

    1 下载 DirectX 9 0 和 DirectX 9 0 SDK 前者的安装很简单 后者要记住安装的目录 SDK Documentation 有chm的查阅工具 SDK Samples C 有非常多的东西可以学习 SDK Lib x86
  • matlab生成one-hot向量

    对于单标签数据 其 label 可能是用一个整数表示 想转化成 one hot label 注意原 class IDs 可能是 0 base 的 要 1 转成 1 base Code N CLASS 10 labels 1 3 2 5 0
  • 图形验证码输入框限制英文加数字

    当输入法处于中文输入法时 可以一直无限输入 只是将中文转成英文 且设置的长度maxlength不生效 暂时解决方案 使用substring 将字符串截取前四位 使得handleInputVerify方法使用受限 仅适用于该输入框
  • 用Java发送邮件 带有图片和附件

    package com baidu email import com sun mail util MailSSLSocketFactory import javax activation DataHandler import javax a
  • 【ChatGPT高端玩法】ChatGPT提问指令大全——7个常用提问模板(上)

    系列文章目录 第一章 ChatGPT一分钟制作PPT 第二章 ChatGPT生成Excel统计格式 第三章 ChatGPT生成Excel提取字符公式 第四章 ChatGPT生成思维导图 第五章 ChatGPT快速生成短视频 第六章 Chat
  • 阿里云服务器ping不通解决办法

    解决办法 1 登录阿里云ECS控制台 单击 安全组 gt 配置规则 2 选择 公网入方向 gt 快速创建规则 3 把常用的几个勾上 4 注意入口出口都要设置 设置完如下图 这时候就可以访问了 如果想从自己电脑ping通服务器的话只要添加下面
  • 关于idea上LeetCode插件, java.lang.NoSuchMethodError: ‘ListNode ListNode.deserialize(java.lang.String)‘ 问题

    如题 刷到链表的题的时候 遇到这个问题 它自动生成的代码模板里有这个注释 leetcode submit region begin Prohibit modification and deletion Definition for sing
  • Qt接收MJPG视频流、实现SSH登录,树莓派机械臂分拣系统设计

    这是机械臂 这是我 基于树莓派的机械臂分拣系统设计 项目代码链接 https pan baidu com s 1KAnaYgfNycjlPONd5k zCg 提取码 pt9p
  • 20200322问题 E: 运动员名次

    题目描述 LZY经过他的不懈努力 终于成为第2147483647届奥运会名次排序员 现在给LZY N 名运动员的成绩 找出他们的相对名次并授予前三名对应的奖牌 前三名运动员将会被分别授予 金牌 银牌 和 铜牌 Gold Medal Silv