求调悬关W~A~W
查看原帖
求调悬关W~A~W
1108111
XYY62012楼主2024/3/31 15:34

求帮我调一下程序

自己测试有点问题,但是思路很对,自己找不出错误

#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;
}

悬赏关注!!谢谢

2024/3/31 15:34
加载中...