#include <stdio.h>
#include <algorithm>
#define ll long long

int n, m, arr[1000010];
ll ans;

ll bs(int k) {
    int s=0, e=arr[n];
    ll mid;
    
    while(s<=e) {
        
        ll sum=0; mid=((ll)s+e)/2;
        
        for(int i=n; arr[i]>=mid && i>0; i--) {
            sum+=arr[i]-mid;
        }
        if(sum>=k) {
            ans=mid;
            s=mid+1;
        }
        else e=mid-1;
    }
    return ans;
}

int main() {
    scanf("%d %d", &n, &m);

    for(int i=1; i<=n; i++) {
        scanf("%d", &arr[i]);
    }
    
    std::sort(arr+1, arr+n+1);

    printf("%lld", bs(m));
    
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: