问题描述
  在一个整数序列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 中间数相关推荐

  1. CCF201612-1 中间数(100分)

    试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等 ...

  2. CCF201612-1 中间数(解法三)(100分)(废除!!!)

    试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等 ...

  3. CCF201612-1 中间数(解法二)(100分)(废除!!!)

    试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等 ...

  4. 【CCF】201612-1中间数

    试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等于小于它的 ...

  5. ## CSP 201612-1 中间数(C语言)(100分)

    试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等于小于它的整 ...

  6. CCF201612-1 中间数(100分)【序列处理+排序】

    试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a 1, a 2, -, a n中,如果存在某个数,大于它的整数 ...

  7. CCF201612试题

    来源:CCF计算机职业资格网站. 试题编号: 201612-1 试题名称: 中间数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个整数序列a1, a2, -, an中, ...

  8. 计算机最大数最小数的函数,Excel函数教程: 求最大、最小、中间数、最多数-excel技巧-电脑技巧收藏家...

    Excel函数教程: 求最大.最小.中间数.最多数 四.一组用于求数据集的满足不同要求的数值的函数 1.求数据集的最大值MAX与最小值MIN 这两个函数MAX.MIN就是用来求解数据集的极值(即最大值 ...

  9. CCF-CSP 201612-1 中间数

    问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数.在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的. 给定 ...

最新文章

  1. ECSHOP学习笔记
  2. codevs1002 搭桥
  3. 实验二——函数重载,快速排序,类对象
  4. 在html标签中写三元运算符,如何在剃须刀中使用三元运算符(特别是在HTML属性上)?...
  5. 三大发展方向或成移动医疗产品风口
  6. Python 90行代码让微信地球转起来,你也可以!| 原力计划
  7. HTML5的应用缓存
  8. SlidingMenu 源码分析
  9. 数据分析工具该如何选择
  10. PHP接口(interface)
  11. JS同步执行延时函数的实现
  12. SylixOS -- 双网卡冗余备份设计方案
  13. Vue3 Vite 项目踩坑札记
  14. Excel如何在不同日期后面插入空行
  15. 北京市自动驾驶车辆测试概况
  16. 8522A+7段数码管显示实验
  17. 软件工程-人事管理系统项目(一)
  18. Appium+Java模拟手机按键
  19. python 斗地主(1)
  20. 电脑一声,电脑主机滴的一声是什么意思 ?

热门文章

  1. 系统补丁自动批量安装
  2. [javaSE] 网络编程(浏览器客户端-自定义服务端)
  3. Unity3D之如何创建正确的像素比在屏幕上
  4. 部署一个Windows Server 2008 的只读域控制器
  5. App的selenium,Appium爬App!
  6. 问答一:回答高中生关于前端的疑问
  7. iOS音乐后台播放及锁屏信息显示
  8. **PHP中替换换行符
  9. saltstack(三)state
  10. HDU 1002 大整数