#include<bits/stdc++.h>
using namespace std;
const int NR=1e6 + 10;
int t[NR],ans;
long long n,m;
bool check(int mi){
int mile=0;
for(int i=0;i<n;i++){
mile+=max(0,t[i]-mi);
}
if(mile>=m)return true;
else return false;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>t[i];
}
int l=0,r=1e9;
while(l<=r){
int mi=(l+r)/2;
if(check(mi))l=mi+1;
else r=mi-1;
}
cout<<l-1;
return 0;
}
甚至看了题解,也找不出什么毛病,求助!