CCF考试——201612-1中间数
来源:互联网 发布:php时间戳转换工具 编辑:程序博客网 时间:2024/05/21 17:27
概要
问题描述
在一个整数序列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。
思路
由于样例中出现了重复的数,为了减少运行时间与重复计算,可以把数加入到set集合中。剩下的就是遍历统计。
AC代码
#include <iostream>#include <set>using namespace std;int data[1000];set<int> s;int N;int main(){ cin>>N; for(int i = 0 ; i < N ; i++){ cin>>data[i]; s.insert(data[i]); } set<int>::iterator it; bool flag = false; for(it = s.begin() ; it != s.end() ; it++){ int greater = 0; int lower = 0; for(int i = 0 ; i < N ; i++){ if(data[i] < *it){ lower++; }else if(data[i] > *it){ greater++; } } if(greater == lower){ cout<<*it; flag = true; break; } } if(!flag){ cout<<-1; } return 0;}
阅读全文
0 0
- CCF考试——201612-1中间数
- CCF 201612-1 中间数
- CCF 201612-1 中间数
- CCF 201612-1 中间数
- CCF-201612-1-中间数
- CCF 201612-1 中间数
- 【ccf-201612-1】中间数
- [CCF] 201612-1 中间数
- 求中间数:CCF计算机职业资格认证考试模拟试题,编号:201612-1
- CCF 201612-1 中间数 JAVA实现
- CCF CSP试题 201612-1中间数
- CCF-CSP 中间数 JAVA 201612-1
- CCF认证201612-1 中间数
- CCF试题 201612-1 中间数
- CCF CSP 201612-1 中间数
- CCF考试练习——201612-1
- CCF CSP 201612-1 中间数(Java-100分)
- ccf 201612-1 中间数 (100分)
- web.xml中url-pattern的3种写法
- POI导出excle,文件导出到本地
- Eclipse项目导入到Android Studio的过程和一些问题的解决
- 1080. Graduate Admission (30)
- Java随机产生4位验证码(数字、大小写字母组成)
- CCF考试——201612-1中间数
- java 实现统计字母个数,并输出最多的字母
- 回文子串 记忆化搜索(DP)
- poj 1681 Painter's Problem(高斯消元)
- Codevs1332上白泽慧音
- 无聊到蛋疼的日子
- 在 Intellij IDEA 提交代码到远程 Github 仓库的方法
- SQL SERVER 创建登录用户,授予权限
- ajax嵌套ajax