问题 2485 --中位数(完善程序)

2485: 中位数(完善程序)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 2210  解决: 1051
[提交][状态][命题人:]

题目描述

给定n(n为奇数且小于1000)个整数,整数的范围在0~m(0<m<2^31)之间,请使用二分法求这n个整数的中位数。所谓中位数,是指将这n个数排序之后,排在正中间的数。

输入

第一行为两个整数n,m

第二行为n个整数,中间空格隔开

输出


输出这n个整数的中位数

输入样例

7   10000
100 10 50  30 40  70 90 
输出样例

50

#include <iostream>
using namespace std;
const int MAXN = 100;
int n,i,lbound,rbound,mid,m,count;
int x[MAXN];
int main(){     
    cin>>n>>m;
    for(i=0;i<n;i++)
        cin>>x[i];
    lbound=0;
    rbound=m;
    while(____(1)_______){
        mid=(lbound+rbound)/2;
        ______(2)_______
        for(i=0;i<n;i++)
        	if(_____(3)_____)
        		______(4)________
        if(count>n/2)
        	lbound=mid+1;
        else
        	_____(5)_____
    }
    cout<<rbound<<endl;
}

输入


输出


提示

只需输出答案即可,一共5行,每行一个大写字母

来源

[提交][状态]