题目链接
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 55;
#define int long long
int n,m;
int a[N];
bool check(int mid)
{
if(mid>a[2]+a[1])return false;
int sum=0;
for(int i=1;i<=n;i++)
{
if(a[i]<mid)sum+=mid-a[i];
}
return sum<=m&&sum<=mid;
}
signed main()
{
cin>>n>>m;
int l=0,r=0;
for(int i=1;i<=n;i++)
{
cin>>a[i];
r=max(r,a[i]);
}
sort(a+1,a+n+1);
while(l<r)
{
int mid=l+r+1>>1;
if(check(mid))l=mid;
else r=mid-1;
}
cout<<r<<endl;
}