建议降橙
查看原帖
建议降橙
1304256
xy_mc楼主2024/11/18 21:27
#include<bits/stdc++.h>
using namespace std;
int L,n,m,a[50005],ans;
bool check(int x){
	int cnt=0,w=0;
	for(int i=1;i<=n+1;i++){
		if(a[i]-a[w]<x){
			cnt++;
		}else{
			w=i;
		}
	}
	return cnt<=m;
}
int main(){
	cin>>L>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	a[n+1]=L;
	int l=1,r=L;
	while(l<=r){
		int mid=(l+r)>>1;
		if(check(mid)){
			ans=mid;
			l=mid+1;
		}else{
			r=mid-1;
		}
	}
	cout<<ans;
	return 0;
}
2024/11/18 21:27
加载中...