在[0,max(height)]上进行二分查找
N,M=map(int,input().split())
long=[]
long+=[int(x) for x in input().split()]
r=max(long)
l=0
ans=0
def check(mid):
sum=0
for i in range(N):
if long[i] >mid:
sum+=long[i]-mid
return sum>=M
while(l<=r):
mid=int((l+r)/2)
if check(mid):
l=mid+1
ans=mid
else:
r=mid-1
print(ans)
暴力
N,M=map(int,input().split())
long=[]
long+=[int(x) for x in input().split()]
ans=max(long)
k=1
while(k<1000000):
sum=0
ans-=k
for i in range(N):
if long[i] >ans:
sum+=long[i]-ans
if sum>=M:
break
print(ans)