12 条题解

  • 0
    @ 2026-3-27 20:36:43
    #include<bits/stdc++.h>
    using namespace std;
    int L,n,m,a[50004],l,r,ans;
    bool check(int mid)
    {
    	int last=0,sum=0;
    	for(int i=1;i<=n;i++)
    		a[i]-last>=mid?last=a[i]:sum++;
    	return sum<=m;
    }
    int main()
    {
        ios::sync_with_stdio(0);
        cin.tie(0);
       	scanf("%d%d%d",&L,&n,&m);
       	for(int i=1;i<=n;i++)
       		scanf("%d",&a[i]);
       	a[++n]=L,l=1,r=L;
       	while(l<=r)
       	{
    	   	int mid=(l+r)>>1;
    	   	check(mid)?ans=mid,l=mid+1:r=mid-1;
    	}
       	printf("%d",ans);
       	return 0;
    }
    

    信息

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