8 条题解

  • 1
    @ 2024-12-17 17:32:05
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    int L,n,m;
    int a[N],l,r,ans;
    bool check(int mid){
    	int last=0;
    	int sum=0;
    	for(int i=1;i<=n;i++){
    		if(a[i]-last<mid){
    			sum++;
    		}
    		else{
    			last=a[i];
    		}
    	}
    	return sum<=m;
    }
    int main(){
    	cin>>L>>n>>m;
    	for(int i=1;i<=n;i++)
    		cin>>a[i];
    	a[++n]=L;
    	r=L;
    	while(l<=r){
    		int mid=l+r>>1;
    		if(check(mid)){
    			ans=mid;
    			l=mid+1;
    		}
    		else
    			r=mid-1;
    	}
    	cout<<ans;
    
    }
    小鸟
    

    信息

    ID
    755
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    递交数
    566
    已通过
    170
    上传者