个人觉得应该是check函数问题(bool chk),但是一检查好像没啥问题,输出奇怪
#include<iostream>
using namespace std;
int k,l,n,ans;
const int N=1e6+10;
int tree[N];
bool chk(int x){
long long j;
for(int i=0;i<n;i++){
j+=tree[i];
}
return j/x>=k;
}
int main(){
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++){
scanf("%d",&tree[i]);
}
int l=0,r=N;
while(l<=r){
int mid=(l+r)/2;
if(chk(mid)){
l=mid+1;
ans=mid;
}
else{
r=mid-1;
}
}
printf("%d",ans);
return 0;
}