70pts?
查看原帖
70pts?
1013950
__youzimo2014__楼主2024/4/25 21:25
#include <bits/stdc++.h>
using namespace std;
int x[100005], n, c;
bool check(int d) {
    int last = x[1];
    for (int i = 2; i <= c; i++) {
        bool ok = false;
        for (int i = last + 1; i <= n; i++) {
            if (x[i] - x[last] >= d) {
                last = i;
                ok = true;
                break;
            }
        }
        if (ok == false) {
            return false;
        }
    }
    return true;
}
int main(int argc, const char * argv[]) {
    // insert code here...
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    cin >> n >> c;
    int littleL = INT_MAX;
    for (int i = 1; i <= n; i++) {
        cin >> x[i];
        littleL = min(littleL, x[i]-x[i-1]);
    }
    sort(x+1, x+1+n);
    int l = littleL, r = x[n] - x[1], ans = 0;
    while (l <= r) {
        int mid = (l + r) / 2;
        if (check(mid)) {
            ans = mid;
            l = mid + 1;
        } else {
            r = mid - 1;
        }
    }
    cout << ans << endl;
    return 0;
}
2024/4/25 21:25
加载中...