20分求助TAT
查看原帖
20分求助TAT
1068448
guang_zi_guei_ji楼主2024/5/28 20:15
#include<bits/stdc++.h>
using namespace std;
int a[50050],n,m;
bool pan_duan(int mid){
	int m1=0,x=0,h=1;
	while(x<=n){
		x=upper_bound(a+1,a+2+n,mid+a[x])-a;
		m1+=x-h-1;
		h=x;
	}
	return m1<m;
}
int main(){
	int l,r;
	cin>>r>>n>>m;
	a[n+1]=r;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	l=0;
	while(l<=r){
		int mid=(l+r)/2;
		if(pan_duan(mid)){
			l=mid+1;
		}
		else{
			r=mid-1;
		}
	}
	cout<<r-1;
	return 0;
}
2024/5/28 20:15
加载中...