为什么这样是错滴
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,a[1000010];
int find(int x){
ll sum=0;
for(int i=1;i<=n;i++){
if(a[i]>x)
sum+=a[i]-x;
}
if(sum>=m)
return 1;
else
return 0;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
ll l=1,r=n+1,mid;
while(l<r){
mid=(l+r)/2;
if(find(mid))
l=mid+1;
else
r=mid;
}
cout<<l;
return 0;
}