8 条题解

  • 0
    @ 2024-11-3 16:24:56
    /*
    int      %o/%lo 8 %d/%i/%ld/%li 10 %x/%lx 16
    longlong %lld
    float    %f/%e
    double   %lf/%le
    char     %c
    char[]   %s
    'a'=97
    'z'=122
    'A'=65
    'Z'=90
    '0'=48
    '9'=57
    */
    #include <iostream>
    #include <iomanip>
    #include <cmath>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <ctime>
    #include <limits>
    #include <assert.h>
    #include <stdlib.h>
    using namespace std;
    #define LL long long
    #define ull unsigned long long
    const int N=1e5+10;
    const int INF=0x3f3f3f3f;
    const double pi=3.1416;
    int L,n,m,a[N],ans,l,r;
    bool check(int mid){
    	int last=0,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;
    	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;
    }
    

    信息

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