8 条题解

  • 0
    @ 2024-7-30 11:17:25

    #include

    #include

    #include

    #include

    #include

    #include

    using namespace std;

    const int N = 5e4 +10;

    const int INF=0x3f3f3f;

    int n,mid,m,a[N],l,r,ans,L;

    bool check(int k){

    int last = 0;

    int sum = 0;

    for(int i = 1;i<=n;i++){

    if(a[i] - last < k)

    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
    上传者