0分求助,但是hack过了(
查看原帖
0分求助,但是hack过了(
581345
Zpril_20211017楼主2023/1/13 20:04

rt

#include <bits/stdc++.h>
#define int long long
using namespace std;

int a[100001],l,n,k;

bool check(int g)
{
    int cnt = 0;
    for(int i = 1;i < n;i++)
    {
        cnt += (a[i + 1] - a[i] - 1) / g;
        if(cnt >= n)
            return 0;
    }
    return 1;
}

int ef(int l,int r)
{
    while(l <= r)
    {
        int m = (l + r) / 2;
        if(check(m))
            r = m - 1;
        else
            l = m + 1;
    }
    return l;
}

signed main()
{
    cin >> l >> n >> k;
    for(int i = 1;i <= n;i++)
        cin >> a[i];
    sort(a + 1,a + n + 1);
    cout << ef(1,l);
    return 0;
}

2023/1/13 20:04
加载中...