40002023-03-08 07:34:071478Sípálya (55 pont)cpp17Hibás válasz 5/55115ms21272 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    //ifstream cin("in.txt");
    int n;
    cin >> n;
    int k;
    cin >> k;
    vector<int> heights(n + 2);
    vector<int> ps(n + 1);
    for(int i = 1; i <= n; i++){
        cin >> heights[i];
        ps[i] = ps[i - 1] + heights[i];
    }

    multiset<int> s;
    for(int i = 1; i <= k; i++){
        s.insert(heights[i] + i);
    }

    int ans = INT_MAX;
    for(int i = k; i <= n; i++){
        int actualsum = ps[i] - ps[i - k];
        int neededsum = (*s.rbegin() * 2  - i * 2 + k - 1)*k/2 ;
        //cout << ans << " " << s.size() << '\n';
        ans = min(ans, neededsum - actualsum);
        s.erase(s.lower_bound(heights[i - k] + i - k));
        s.insert(heights[i + 1] + i + 1);
    }
    cout << ans;



    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base5/55
1Elfogadva0/03ms1996 KiB
2Hibás válasz0/03ms2044 KiB
3Futási hiba0/23ms2500 KiB
4Futási hiba0/23ms2684 KiB
5Hibás válasz0/23ms2572 KiB
6Hibás válasz0/23ms2860 KiB
7Hibás válasz0/33ms3040 KiB
8Elfogadva1/18ms3460 KiB
9Elfogadva1/18ms3552 KiB
10Elfogadva1/18ms3572 KiB
11Futási hiba0/16ms3944 KiB
12Futási hiba0/16ms3828 KiB
13Futási hiba0/18ms3996 KiB
14Elfogadva2/28ms4248 KiB
15Futási hiba0/26ms4288 KiB
16Futási hiba0/283ms8112 KiB
17Hibás válasz0/2111ms16620 KiB
18Hibás válasz0/2112ms17636 KiB
19Hibás válasz0/3111ms21272 KiB
20Hibás válasz0/2114ms8792 KiB
21Futási hiba0/2108ms9060 KiB
22Futási hiba0/2109ms9032 KiB
23Futási hiba0/293ms8380 KiB
24Futási hiba0/293ms8780 KiB
25Hibás válasz0/2115ms9188 KiB
26Hibás válasz0/2114ms9712 KiB
27Hibás válasz0/2112ms10132 KiB
28Hibás válasz0/3112ms10096 KiB
29Hibás válasz0/3112ms10620 KiB
30Hibás válasz0/3114ms11136 KiB