11 条题解

  • 0
    @ 2025-9-27 17:03:22
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,L,maxx=-1;
    int a[10000005];
    int check(int x){
    	int sum=0,now=0;
    	for(int i=1; i<=n; i++){
    		if(a[i]-a[now]<x) sum++;
    		else now=i;
    	}
    	return sum<=m; 
    }
    int main(){
    	cin >> L >> n >> m;
    	for(int i=1; i<=n; i++){
    		cin >> a[i];		
    	}
    	a[n+1]=L;
    	int l=0,r=L,mid;
    	while (l<r){
    		mid=(l+r+1)/2;
    		if(check(mid)){
    			l=mid;
    		}
    		else r=mid-1;
    	}
    	cout << r;
    	return 0;
    }
    

    信息

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