77302024-01-10 18:48:39gyjazminSípálya (55 pont)cpp17Elfogadva 55/55115ms19788 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ÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/03ms1812 KiB
2Elfogadva0/03ms2056 KiB
3Elfogadva2/23ms2268 KiB
4Elfogadva2/23ms2512 KiB
5Elfogadva2/23ms2728 KiB
6Elfogadva2/24ms3028 KiB
7Elfogadva3/33ms3104 KiB
8Elfogadva1/18ms3484 KiB
9Elfogadva1/18ms3700 KiB
10Elfogadva1/18ms3936 KiB
11Elfogadva1/18ms4156 KiB
12Elfogadva1/18ms4260 KiB
13Elfogadva1/18ms4452 KiB
14Elfogadva2/28ms4576 KiB
15Elfogadva2/28ms4212 KiB
16Elfogadva2/2108ms6516 KiB
17Elfogadva2/2111ms14976 KiB
18Elfogadva2/2112ms16020 KiB
19Elfogadva3/3111ms19788 KiB
20Elfogadva2/2115ms7656 KiB
21Elfogadva2/2108ms7388 KiB
22Elfogadva2/2109ms7520 KiB
23Elfogadva2/2111ms6972 KiB
24Elfogadva2/2115ms7212 KiB
25Elfogadva2/2112ms8120 KiB
26Elfogadva2/2114ms8644 KiB
27Elfogadva2/2109ms8832 KiB
28Elfogadva3/3112ms8928 KiB
29Elfogadva3/3112ms9448 KiB
30Elfogadva3/3115ms9856 KiB