4838 | 2023. 03. 31 16:51:55 | Error42 | TV szolgáltatók | cpp17 | Elfogadva 40/40 | 112ms | 5832 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 | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1812 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2008 KiB | |||
3 | Elfogadva | 1/1 | 3ms | 2216 KiB | |||
4 | Elfogadva | 1/1 | 3ms | 2460 KiB | |||
5 | Elfogadva | 1/1 | 3ms | 2644 KiB | |||
6 | Elfogadva | 1/1 | 3ms | 2856 KiB | |||
7 | Elfogadva | 2/2 | 3ms | 3100 KiB | |||
8 | Elfogadva | 2/2 | 3ms | 3152 KiB | |||
9 | Elfogadva | 2/2 | 3ms | 3156 KiB | |||
10 | Elfogadva | 2/2 | 3ms | 3180 KiB | |||
11 | Elfogadva | 2/2 | 46ms | 4044 KiB | |||
12 | Elfogadva | 2/2 | 46ms | 4140 KiB | |||
13 | Elfogadva | 2/2 | 46ms | 4256 KiB | |||
14 | Elfogadva | 2/2 | 46ms | 4344 KiB | |||
15 | Elfogadva | 2/2 | 90ms | 4992 KiB | |||
16 | Elfogadva | 2/2 | 90ms | 5200 KiB | |||
17 | Elfogadva | 2/2 | 57ms | 4556 KiB | |||
18 | Elfogadva | 2/2 | 57ms | 4648 KiB | |||
19 | Elfogadva | 2/2 | 57ms | 4552 KiB | |||
20 | Elfogadva | 2/2 | 57ms | 4800 KiB | |||
21 | Elfogadva | 1/1 | 57ms | 4920 KiB | |||
22 | Elfogadva | 1/1 | 57ms | 4924 KiB | |||
23 | Elfogadva | 1/1 | 112ms | 5800 KiB | |||
24 | Elfogadva | 1/1 | 112ms | 5680 KiB | |||
25 | Elfogadva | 1/1 | 112ms | 5736 KiB | |||
26 | Elfogadva | 1/1 | 112ms | 5832 KiB | |||
27 | Elfogadva | 1/1 | 112ms | 5756 KiB | |||
28 | Elfogadva | 1/1 | 112ms | 5772 KiB |