CCF CSP 中间数
来源:互联网 发布:电梯网络监控解决方案 编辑:程序博客网 时间:2024/05/01 14:24
CCF CSP 中间数
题目
试题编号:201612-1 试题名称:中间数 时间限制:1.0s 内存限制:256.0MB 问题描述:
问题描述
在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。
给定一个整数序列,请找出这个整数序列的中间数的值。
给定一个整数序列,请找出这个整数序列的中间数的值。
输入格式
输入的第一行包含了一个整数n,表示整数序列中数的个数。
第二行包含n个正整数,依次表示a1, a2, …, an。
第二行包含n个正整数,依次表示a1, a2, …, an。
输出格式
如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。
样例输入
6
2 6 5 6 3 5
2 6 5 6 3 5
样例输出
5
样例说明
比5小的数有2个,比5大的数也有2个。
样例输入
4
3 4 6 7
3 4 6 7
样例输出
-1
样例说明
在序列中的4个数都不满足中间数的定义。
样例输入
5
3 4 6 6 7
3 4 6 6 7
样例输出
-1
样例说明
在序列中的5个数都不满足中间数的定义。
评测用例规模与约定
对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ ai ≤ 1000。
试题编号:201612-1 试题名称:中间数 编译环境: 答案程序: 提交确认: 以下必须全部满足才能提交:
思路
箱排序,然后从左右两边同时开始扫描即可
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn(1e3 + 10);int array[maxn];int n;int cnt;int main(int argc, char const *argv[]){ while(scanf("%d",&n) != EOF){ memset(array,0,sizeof(array)); cnt = 0; int ai; int left = 1000, right = 0; for(int i = 0; i < n; i++){ scanf("%d",&ai); if(array[ai] == 0){ cnt++; } array[ai]++; left = min(left, ai); right = max(right, ai); } left--; right++; int sum1 = 0, sum2 = 0; bool found = false; while(left < right && !found && cnt){ if(sum1 == sum2){ if(cnt != 1){ do{ left++; if(array[left]){ sum1 += array[left]; cnt--; } }while(!array[left] && left < right); } else{ for(int i = left + 1; i < right; i++){ if(array[i]){ printf("%d\n", i); found = true; break; } } } } else{ if(sum1 < sum2){ do{ left++; if(array[left]){ sum1 += array[left]; cnt--; } }while(!array[left] && left < right); } else{ do{ right--; if(array[right]){ sum2 += array[right]; cnt--; } }while(!array[right] && left < right); } } } if(!found){ puts("-1"); } } return 0;}
阅读全文
0 0
- CCF CSP 中间数
- [CCF-CSP]2016-1(中间数)
- CCF CSP试题 201612-1中间数
- CCF-CSP-2016-12-1 中间数
- ccf csp认证中间数java代码
- CCF-CSP 中间数 JAVA 201612-1
- CCF CSP 201612-1 中间数
- CCF CSP 201612-1 中间数(Java-100分)
- CCF CSP 有趣的数
- 中间数-CCF往届题
- CCF 中间数解析
- ccf试题 中间数
- CCF 中间数
- CCF 中间数
- ccf-中间数
- ccf 中间数
- ccf 中间数
- ccf-2016121-中间数
- 类构造函数,类析构函数
- Android UI性能优化 检测应用中的UI卡顿
- 不使用递归和栈遍历二叉树
- 前后端分离时保持前端的cookie一直都是一个从而让后端session是同一个
- Android应用进程的生命周期
- CCF CSP 中间数
- Python学习心得(七) 深入理解threading多线程模块
- 线段树成段更新 POJ 3468 A Simple Problem with Integers 水题
- Android弹幕功能实现,模仿斗鱼直播的弹幕效果
- 搜片源必备
- Android ListView功能扩展,实现高性能的瀑布流布局
- MFC&C读取,保存时间
- charles+SwitchyOmega抓取https网站
- 用Bitmap结构保存opencv中的单通道(8位)图像保存为png8