39992023-03-08 07:33:251478Sípálya (55 pont)cpp17Hibás válasz 0/55159ms21720 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
base0/55
1Hibás válasz0/03ms1808 KiB
2Hibás válasz0/03ms2056 KiB
3Futási hiba0/23ms2324 KiB
4Futási hiba0/23ms2548 KiB
5Hibás válasz0/23ms2656 KiB
6Hibás válasz0/23ms2888 KiB
7Hibás válasz0/33ms3080 KiB
8Hibás válasz0/19ms3388 KiB
9Hibás válasz0/19ms3640 KiB
10Hibás válasz0/19ms3772 KiB
11Futási hiba0/17ms4104 KiB
12Futási hiba0/16ms4288 KiB
13Futási hiba0/18ms4588 KiB
14Hibás válasz0/28ms4512 KiB
15Futási hiba0/27ms4408 KiB
16Futási hiba0/294ms8272 KiB
17Hibás válasz0/2140ms16944 KiB
18Hibás válasz0/2138ms17992 KiB
19Hibás válasz0/3123ms21720 KiB
20Hibás válasz0/2158ms9464 KiB
21Futási hiba0/2156ms9516 KiB
22Futási hiba0/2158ms9612 KiB
23Futási hiba0/2109ms9016 KiB
24Futási hiba0/2119ms9368 KiB
25Hibás válasz0/2159ms9796 KiB
26Hibás válasz0/2158ms10316 KiB
27Hibás válasz0/2159ms10448 KiB
28Hibás válasz0/3158ms10584 KiB
29Hibás válasz0/3157ms11144 KiB
30Hibás válasz0/3155ms11576 KiB