为什么就是超时?悬关
查看原帖
为什么就是超时?悬关
1252442
lucy2012楼主2024/3/21 10:12
#include<bits/stdc++.h>
using namespace std;
long long lon,n,m,a[100000],l,r,mid;
int find(int mid){
	int cnt=0,num=0,i=0;
	while(i<=n+1){
		if(a[i]-a[num]>mid) 
		    cnt++;
		else
		    num=i;
	}
	return cnt<=m;
}
int main(){
    cin>>lon>>n>>m;
    a[0]=0;a[n+1]=lon;
    l=0;r=lon;
    for(int i=1;i<=n;i++)
		cin>>a[i];
	while(l+1<r){
		mid=(l+r)>>1;
		if(find(mid)) l=mid;
		else r=mid;
	}
	cout<<l;
	return 0;
}	
2024/3/21 10:12
加载中...