7-32 中位数 (10 分)

简介: 7-32 中位数 (10 分)

7-32 中位数 (10 分)


一个有 n 个整数的数组 a,n是一个奇数。


每次可以选择数组里的一个元素 ai 并把这个元素加上 1。


在至多 k 次操作之后,数组的中位数最大能变成多少。


输入格式:


多组输入


第一行两个整数 n,k(1≤n≤2×105,1≤k≤109)。

第二行 n 和整数 a1,a2,......,an。


输出格式:


k 次操作后数组的中位数。


输入样例:


1. 3 2
2. 1 3 5


结尾无空行


输出样例:


结尾无空行



1.



#include<iostream>
#include<algorithm>
using namespace std;
const int MAX=2e5+10,N=1e10;
int a[MAX],n,k;
int find(int mid){
    int s=0;
    for(int i=n/2;i<n;i++){
        if(a[i]<mid){
            s+=mid-a[i];
            if(s>k)return 0;
        }
    }return 1;
}
int main(){
    while(cin>>n>>k){
        for(int i=0;i<n;i++)cin>>a[i];
        sort(a,a+n);
        int l=0,r=N,ans;
        while(l<=r){
            int mid=(l+r)/2;
            if(find(mid)){
                ans=mid;
                l=mid+1;
            }else r=mid-1;
        }cout<<ans<<endl;
    }
    return 0;
}




目录
相关文章
|
4月前
|
C++
1984. 学生分数的最小差值C++
1984. 学生分数的最小差值C++
|
5月前
1056 组合数的和 (15 分)
1056 组合数的和 (15 分)
|
5月前
1030 完美数列 (25 分)
1030 完美数列 (25 分)
|
数据挖掘 BI 定位技术
为什么中位数(大多数时候)比平均值好
为什么中位数(大多数时候)比平均值好
253 1
为什么中位数(大多数时候)比平均值好
L1-048 矩阵A乘以B (15 分)
L1-048 矩阵A乘以B (15 分)
113 0
L1-048 矩阵A乘以B (15 分)
h0039. 平方数 (15 分)
h0039. 平方数 (15 分)
132 0
L1-036 A乘以B (5 分)
L1-036 A乘以B (5 分)
97 0
L1-009 N个数求和 (20 分)
L1-009 N个数求和 (20 分)
136 0
|
测试技术
L1-003 个位数统计 (15 分)
L1-003 个位数统计 (15 分)
144 0
L1-037 A除以B (10 分)
L1-037 A除以B (10 分)
134 0