90分,第11个点wa了,求助
查看原帖
90分,第11个点wa了,求助
155180
lanxii楼主2023/4/15 12:04
#include <bits/stdc++.h>

using namespace std;

int l, n, m, a[50001], ans;

bool check(int x) {
    int cnt = 0, i = 0, pre = 0;
    while(i < n + 1) {
        ++i;
        if(a[i] - a[pre] < x) {
            ++cnt;
        }else
            pre = i;
    }
    if(cnt > m) return false;
    return true;
}

int main(void) {
    ios::sync_with_stdio(false);
    cin.tie(0);

    cin >> l >> n >> m;

    for(int i = 1; i <= n; i++)
        cin >> a[i];
    a[n + 1] = l;

    int left = 0, right = l + 1;
    while(left <= right) {
        int mid = left + (right - left) / 2;
        if(check(mid)) {
            ans = mid;
            left = mid + 1;
        }else
            right = mid - 1;
    }
    cout << ans;
    return 0;
}
2023/4/15 12:04
加载中...