求帮我调一下程序
自己测试有点问题,但是思路很对,自己找不出错误
#include<bits/stdc++.h>
using namespace std;
long long n,m;
int h[6000009];
long long z,y,mid;
long long ans;
bool check(int m){
ans=0;
for(int i=1;i<=n;i++){
ans+=(h[i]-m>=0?h[i]-m:0);
}
if(ans>=m) return true;
else return false;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>h[i];
}
z=0,y=1e9;
while(z<y){
mid=(z+y)/2;
if(check(mid)) z=mid+1;
else y=mid-1;
}
cout<<y<<endl;
return 0;
}
悬赏关注!!谢谢