7730 2024. 01. 10 18:48:39 gyjazmin Sípálya (55 pont) cpp17 Elfogadva 55/55 115ms 19788 KiB
#include <iostream>
#include <set>
#include <vector>
using namespace std;
typedef long long ll;
int main()
{
    int n, k;
    cin >> n >> k;
    vector<int> hegyek(n);
    for (int i = 0; i < n; i++) {
        cin >> hegyek[i];
        hegyek[i] += i;
    }
    multiset<int> jelenlegi;
    long long sum = 0;
    for (int i = 0; i < k; i++) {
        sum += hegyek[i];
        jelenlegi.insert(hegyek[i]);
    }
    ll legk = INT64_MAX;
    for (int i = k - 1; i < n; i++) {
        if (i >= k) {
            sum -= hegyek[i - k];
            sum += hegyek[i];
            jelenlegi.erase(jelenlegi.find(hegyek[i - k]));
            jelenlegi.insert(hegyek[i]);
        }
        auto it = jelenlegi.end();//-1;
        it--;
        ll lokalismaximum = *it;
        ll ar = k * lokalismaximum - sum;
        if (ar < legk) {
            legk = ar;
        }
    }
    cout << legk;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 55/55
1 Elfogadva 0/0 3ms 1812 KiB
2 Elfogadva 0/0 3ms 2056 KiB
3 Elfogadva 2/2 3ms 2268 KiB
4 Elfogadva 2/2 3ms 2512 KiB
5 Elfogadva 2/2 3ms 2728 KiB
6 Elfogadva 2/2 4ms 3028 KiB
7 Elfogadva 3/3 3ms 3104 KiB
8 Elfogadva 1/1 8ms 3484 KiB
9 Elfogadva 1/1 8ms 3700 KiB
10 Elfogadva 1/1 8ms 3936 KiB
11 Elfogadva 1/1 8ms 4156 KiB
12 Elfogadva 1/1 8ms 4260 KiB
13 Elfogadva 1/1 8ms 4452 KiB
14 Elfogadva 2/2 8ms 4576 KiB
15 Elfogadva 2/2 8ms 4212 KiB
16 Elfogadva 2/2 108ms 6516 KiB
17 Elfogadva 2/2 111ms 14976 KiB
18 Elfogadva 2/2 112ms 16020 KiB
19 Elfogadva 3/3 111ms 19788 KiB
20 Elfogadva 2/2 115ms 7656 KiB
21 Elfogadva 2/2 108ms 7388 KiB
22 Elfogadva 2/2 109ms 7520 KiB
23 Elfogadva 2/2 111ms 6972 KiB
24 Elfogadva 2/2 115ms 7212 KiB
25 Elfogadva 2/2 112ms 8120 KiB
26 Elfogadva 2/2 114ms 8644 KiB
27 Elfogadva 2/2 109ms 8832 KiB
28 Elfogadva 3/3 112ms 8928 KiB
29 Elfogadva 3/3 112ms 9448 KiB
30 Elfogadva 3/3 115ms 9856 KiB