제출 #1139727

#제출 시각아이디문제언어결과실행 시간메모리
1139727stanraresSwimming competition (LMIO18_plaukimo_varzybos)C++20
10 / 100
252 ms4328 KiB
#include <bits/stdc++.h>
using namespace std;

#define NMAX 1000005
#define ll long long

int v[NMAX], n, a, b;

bool check(int x) {
    int groups = 0, start = 0;

    for (int i = 0; i < n; i++) {
        if (v[i] - v[start] > x || i - start + 1 > b) {
            if (i - start < a) return false;
            groups++;
            start = i;
        }
    }

    if (n - start < a) return false;
    groups++;
    return groups <= (n / a);
}

int main() {
    cin >> n >> a >> b;
    for (int i = 0; i < n; i++) cin >> v[i];

    sort(v, v + n);

    int left = 0, right = v[n - 1] - v[0], ans = right;

    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (check(mid)) {
            ans = mid;
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }
    cout << ans;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...