全TLE求调(二分)
查看原帖
全TLE求调(二分)
779118
linjitong楼主2024/7/20 19:55

cd

#include <bits/stdc++.h>
using namespace std;
int a[51419],n,len,m;
int check(int x)
{
    int id=0,ans=0;
    for(int i=1;i<=n;i++)
    {
        if(a[i]-a[id]<x)
        {
            ans++;
        }
        else
        {
            id=i;
        }
    }
}
int main() {
    scanf("%d%d%d",&len,&n,&m);
    for(int i=1;i<=n;i++) {
        scanf("%d",&a[i]);
    }
    a[++n]=len;
    int l=1,r=len;
    while(l<r) {
        int mid=(l+r)/2;
        if(check(mid)<m) {
            l=mid+1;
        }
        else {
            r=mid;
        }
    }
    printf("%d\n",l);    
}
2024/7/20 19:55
加载中...