CCF201612-1 中间数
问题描述
在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。
给定一个整数序列,请找出这个整数序列的中间数的值。
输入格式
输入的第一行包含了一个整数n,表示整数序列中数的个数。
第二行包含n个正整数,依次表示a1, a2, …, an。
输出格式
如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。
样例输入:
6
2 6 5 6 3 5
样例输出
5
样例说明
比5小的数有2个,比5大的数也有2个。
样例输入
4
3 4 6 7
样例输出
-1
样例说明
在序列中的4个数都不满足中间数的定义。
样例输入
5
3 4 6 6 7
样例输出
-1
样例说明
在序列中的5个数都不满足中间数的定义。
评测用例规模与约定
对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ ai ≤ 1000。
分析:这道题首先,先排好序,如果中间数存在,那么一定是a[(n-1)/2] (n为数组元素总数),那么我们可以匹配这个中间数,从左边开始找到第一个=a[(n-1)/2],并记录下标index1,接下来继续匹配直到a[i] != a[(n-1)/2],并记录下标index2=i-1,如果index1+index2 = n-1,那么左右正好是对称的,即大于中间数的个数和小于中间数的个数相等。
#include<iostream>
#include<algorithm>
using namespace std;
int middle(int a[],int n);
int main(){int a[1000];int k;cin>>k;for(int i = 0;i<k;i++)cin>>a[i];cout<<middle(a,k)<<endl;return 0;
}
int middle(int a[],int n){int i=0;sort(a,a+n);if(n==1)return a[0];else{int index = (n-1)/2;while(a[i]!=a[index])i++;int index2 = i;while(a[i]==a[index])i++;int index3 = i-1;if(index2+index3==n-1)return a[index2];elsereturn -1;}
}
CCF201612-1 中间数相关推荐
- CCF201612-1 中间数(100分)
试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等 ...
- CCF201612-1 中间数(解法三)(100分)(废除!!!)
试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等 ...
- CCF201612-1 中间数(解法二)(100分)(废除!!!)
试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等 ...
- 【CCF】201612-1中间数
试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等于小于它的 ...
- ## CSP 201612-1 中间数(C语言)(100分)
试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等于小于它的整 ...
- CCF201612-1 中间数(100分)【序列处理+排序】
试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a 1, a 2, -, a n中,如果存在某个数,大于它的整数 ...
- CCF201612试题
来源:CCF计算机职业资格网站. 试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a1, a2, -, an中, ...
- 计算机最大数最小数的函数,Excel函数教程: 求最大、最小、中间数、最多数-excel技巧-电脑技巧收藏家...
Excel函数教程: 求最大.最小.中间数.最多数 四.一组用于求数据集的满足不同要求的数值的函数 1.求数据集的最大值MAX与最小值MIN 这两个函数MAX.MIN就是用来求解数据集的极值(即最大值 ...
- CCF-CSP 201612-1 中间数
问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数.在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的. 给定 ...
最新文章
- ECSHOP学习笔记
- codevs1002 搭桥
- 实验二——函数重载,快速排序,类对象
- 在html标签中写三元运算符,如何在剃须刀中使用三元运算符(特别是在HTML属性上)?...
- 三大发展方向或成移动医疗产品风口
- Python 90行代码让微信地球转起来,你也可以!| 原力计划
- HTML5的应用缓存
- SlidingMenu 源码分析
- 数据分析工具该如何选择
- PHP接口(interface)
- JS同步执行延时函数的实现
- SylixOS -- 双网卡冗余备份设计方案
- Vue3 Vite 项目踩坑札记
- Excel如何在不同日期后面插入空行
- 北京市自动驾驶车辆测试概况
- 8522A+7段数码管显示实验
- 软件工程-人事管理系统项目(一)
- Appium+Java模拟手机按键
- python 斗地主(1)
- 电脑一声,电脑主机滴的一声是什么意思 ?