最后一个测试点wa了,求调(大佬们能用ans的写法吗谢谢)
查看原帖
最后一个测试点wa了,求调(大佬们能用ans的写法吗谢谢)
1466830
huangjiaquqi楼主2025/1/21 15:42
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[50009], L, N, M, ans = -1, l, r, mid;
bool check(int x) {
    ll cnt = 0, la = 0;
    for (int i = 1; i <= N; i++) {
        if (a[i] - la < x) {
            cnt++;
        } 
        else {
            la = a[i];
        }
    }
    return cnt <= M;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin >> L >> N >> M;
    for (int i = 1; i <= N; i++) {
        cin >> a[i];
    }
    l = 1, r = L;
    while (l <= r) {
        mid = (l + r) >> 1;
        if (check(mid)) {
            ans = mid;
            l = mid + 1;
        }
        else {
            r = mid - 1;
        }
    }
    cout << ans << '\n';  
    return 0;
}
2025/1/21 15:42
加载中...