← Back to List

16564번: 히오스 프로게이머 ↗

Solutions

C++14
510 B | 510 chars
#include <iostream>
using namespace std;
long long N,K,Max=-1;
long long ar[1100000];
long long s=0,e=1000000001,mid;
int main()
{
    cin>>N>>K;
    for(int x=0; x<N; x++) cin>>ar[x];

    while(s<=e)
    {
        mid=(s+e)/2;
        long long S=0;
        for(int x=0; x<N; x++)
        {
            if(ar[x]<mid) S+=mid-ar[x]; 
        }
        if(S>K)
        {
            e=mid-1;
        }
        else
        {
            if(Max<mid) Max=mid;
            s=mid+1;
        }
    }
    cout<<Max;
}