求助,不知道哪里出错了,求大佬调bug!
查看原帖
求助,不知道哪里出错了,求大佬调bug!
922644
liumuxian楼主2023/12/10 20:57
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=100010;
ll cd,n,m,ans,a[N];
bool fun(ll mid){
	ll sum=m;
	ll last=0;
	for(ll i=1;i<n;i++){
		if(sum<0){
			break;
		}
		if(a[i]-last<=mid){
			last=a[i];
		}
		else{
			last+=m;
			i--;
			sum--;
		}
	}
	if(sum>=0) return 1;
	else return 0;
} 
int main(){ 
	cin>>cd>>n>>m;
	if(m==0){
		cout<<cd<<endl;
		return 0;
	}
	for(int i=1;i<=n;i++) cin>>a[i];
//	sort(a+1,a+n+1);
	ll l=0,r=cd,mid;
	while(l<=r){
		mid=l+r>>1;
		if(fun(mid)==1){
			ans=mid;
			r=mid-1;
		}
		else l=mid+1;
	}
	cout<<ans<<endl;
	return 0;
}
2023/12/10 20:57
加载中...