48382023-03-31 16:51:55Error42TV szolgáltatókcpp17Elfogadva 40/40112ms5832 KiB
#include <algorithm>
#include <iostream>
#include <functional>
#include <vector>

using namespace std;

using ll = long long;

// lo, hi > 0
template <typename T>
int binary_first_true(T lo, T hi, function<bool(T const&)> const& pred) {
    hi--;

    while (lo < hi) {
        T const mid = (lo + hi) / 2;

        if (pred(mid))
            hi = mid;
        else
            lo = mid + 1;
    }

    return lo;
}

int main() {
#ifdef _DEBUG
    int const maxv = 10;
#else
    int const maxv = 1e9;
#endif

    int n, k;
    cin >> n >> k;

    vector<int> s(n);
    vector<int> e(n);

    for (int i = 0; i < n; i++)
        cin >> s[i] >> e[i];

    sort(s.begin(), s.end());
    sort(e.begin(), e.end());

    int const pos = binary_first_true<int>(1, maxv, [&](int const& cur) {
        int retract_left = s.end() - lower_bound(s.begin(), s.end(), cur + 1);
        int extend_right = lower_bound(e.begin(), e.end(), cur + k) - e.begin();
        
        return extend_right > retract_left;
    });

#ifdef _DEBUG
    cout << pos << "\n";
#endif

    ll ans = 0;

    for (int i = 0; i < n; i++) {
        ans += max(0, s[i] - pos);
        ans += max(0, pos + k - 1 - e[i]);
    }

    cout << ans << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/03ms1812 KiB
2Elfogadva0/03ms2008 KiB
3Elfogadva1/13ms2216 KiB
4Elfogadva1/13ms2460 KiB
5Elfogadva1/13ms2644 KiB
6Elfogadva1/13ms2856 KiB
7Elfogadva2/23ms3100 KiB
8Elfogadva2/23ms3152 KiB
9Elfogadva2/23ms3156 KiB
10Elfogadva2/23ms3180 KiB
11Elfogadva2/246ms4044 KiB
12Elfogadva2/246ms4140 KiB
13Elfogadva2/246ms4256 KiB
14Elfogadva2/246ms4344 KiB
15Elfogadva2/290ms4992 KiB
16Elfogadva2/290ms5200 KiB
17Elfogadva2/257ms4556 KiB
18Elfogadva2/257ms4648 KiB
19Elfogadva2/257ms4552 KiB
20Elfogadva2/257ms4800 KiB
21Elfogadva1/157ms4920 KiB
22Elfogadva1/157ms4924 KiB
23Elfogadva1/1112ms5800 KiB
24Elfogadva1/1112ms5680 KiB
25Elfogadva1/1112ms5736 KiB
26Elfogadva1/1112ms5832 KiB
27Elfogadva1/1112ms5756 KiB
28Elfogadva1/1112ms5772 KiB