萌新妹子刚学二分求调#7WA 90pts
查看原帖
萌新妹子刚学二分求调#7WA 90pts
1305692
xiangixuan楼主2024/12/13 13:11
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, c, a[200000005], Max;
bool check(int mid)
{
    int tmp = 1, lst = 1;
    for (int i = 2; i <= n; ++i)
        if (a[i] - a[lst] >= mid)
            ++tmp, lst = i;
    return tmp >= c;
}
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    cin >> n >> c;
    for (int i = 1; i <= n; ++i)
        cin >> a[i];
    sort(a + 1, a + n + 1);
    for (int i = 1; i <= n; ++i)
        Max = max(Max, a[i] - a[i - 1]);
    int lft = 0, rgh = Max + 1, mid;
    while (lft + 1 < rgh)
    {
        mid = lft + rgh >> 1;
        if (check(mid))
            lft = mid;
        else
            rgh = mid;
    }
    cout << lft << '\n';
    return 0;
}
2024/12/13 13:11
加载中...