40分求调
查看原帖
40分求调
1297817
yuhaosheng楼主2024/12/4 22:03

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int L,n,k,p[N];
bool check(int q){
	int re=0;
	for(int i=1;i<n;i++){
		re+=ceil((p[i+1]-p[i])/q);
	}
	return re<=k;
}
int main(){
	cin>>L>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>p[i];
	}
	int l=1,r=L,ans=-1;
	while(l<=r){
		int mid=(l+r)>>1;
		if(check(mid)){
			ans=mid;
			r=mid-1;
		} 
		else{
			l=mid+1;
		}
	}
	cout<<ans<<"\n";
	return 0;
}

2024/12/4 22:03
加载中...