10982022-03-02 21:10:12peti1234TV szolgáltatókcpp14Elfogadva 40/4043ms26624 KiB
#include <bits/stdc++.h>

using namespace std;
int n, k, l[100005], r[100005];
long long kis=0, nagy=1e9+1, koz;

long long proba(int kezd) {
    int veg=kezd+k-1;
    // a kezd, kezd+1, .... kezd+k-1 helyeket kell lefedni
    long long valasz=0;
    for (int i=1; i<=n; i++) {
        valasz+=max(0, l[i]-kezd);
        valasz+=max(0, veg-r[i]);
    }
    return valasz;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin >> n >> k;
    for (int i=1; i<=n; i++) {
        cin >> l[i] >> r[i];
    }

    // "ternary search - konvex kereses" a fuggveny konvex, ezert valameddig monoton csokken utana pedig valameddig monoton no
    // bintaris keresessel konnyu megtalalni, hogy hol valtozik a monotonitas
    while (nagy-kis>1) {
        koz=(nagy+kis)/2;
        if (proba(koz)>proba(koz+1)) {
            kis=koz;
        } else {
            nagy=koz;
        }
    }

    // a ket ertek kozul biztosan az egyik lesz a minimum hely
    cout << min(proba(kis), proba(nagy));
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/02ms1860 KiB
2Elfogadva0/01ms1920 KiB
3Elfogadva1/11ms1988 KiB
4Elfogadva1/11ms1992 KiB
5Elfogadva1/11ms2036 KiB
6Elfogadva1/12ms2020 KiB
7Elfogadva2/22ms2036 KiB
8Elfogadva2/21ms2052 KiB
9Elfogadva2/21ms2060 KiB
10Elfogadva2/21ms2076 KiB
11Elfogadva2/217ms3496 KiB
12Elfogadva2/217ms4168 KiB
13Elfogadva2/216ms4844 KiB
14Elfogadva2/214ms5532 KiB
15Elfogadva2/228ms7620 KiB
16Elfogadva2/230ms8960 KiB
17Elfogadva2/218ms9164 KiB
18Elfogadva2/220ms10132 KiB
19Elfogadva2/218ms11112 KiB
20Elfogadva2/218ms12076 KiB
21Elfogadva1/118ms13048 KiB
22Elfogadva1/119ms14028 KiB
23Elfogadva1/139ms16780 KiB
24Elfogadva1/135ms18720 KiB
25Elfogadva1/137ms20656 KiB
26Elfogadva1/135ms22620 KiB
27Elfogadva1/135ms24580 KiB
28Elfogadva1/143ms26624 KiB