Submission #1139714

#TimeUsernameProblemLanguageResultExecution timeMemory
1139714stanraresSwimming competition (LMIO18_plaukimo_varzybos)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h>
using namespace std;

#define NMAX 1000005
#define MOD 1000000007
#define ll long long
#define pb push_back

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

bool check(int x) {
    int l = 1;
    for (int r = 1; r <= n; r++) {
        while (l <= n && (v[r] - v[l] >= x || r - l + 1 > b)) {
            if (l + 1 == r && v[r] - v[l] > x && v[r + 1] != v[r])
                return false;
            l++;
            if (l > r)
                return false;
        }
    }
    return true;
}

int main() {
    int r = 0, minn = INT_MAX, maxx = INT_MIN;
    cin >> n >> a >> b;

    for (int i = 1; i <= n; i++) cin >> v[i];
    sort(v + 1, v + 1 + n);

    for (int i = 2; i <= n; i++) {
        minn = min(minn, v[i] - v[i - 1]);
        maxx = max(maxx, v[i] - v[i - 1]);
    }
    int st = minn, dr = maxx;
    while (st <= dr) {
        int mid = (st + dr) / 2;
        if (check(mid)) {
            r = mid;
            dr = mid - 1;
        } else st = mid + 1;
    }
    cout << r;
    return 0;
}

/*
8 3 5
1 1 1 5 6 6 7 11

8 3 5
1 5 8 8 1 1 8 10
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...