249362026-02-16 23:55:12999Sípálya (55 pont)cpp17Accepted 55/5528ms3540 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
#define int long long
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")


signed main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);
    int n,x;cin>>n>>x;
    vector<int> v(n);
    for(int i = 0;i<n;i++){
        cin>>v[i];
    }
    vector<int> pref(n);
    pref[0]=v[0];
    for(int i = 1;i<n;i++){
        pref[i]=pref[i-1]+v[i];
    }
    deque<array<int,2>> deq; //[0]:v[i]-i, [1]:i
    int cost=1e15;
    for(int i = 0;i<x;i++){
        while(!deq.empty()&&v[i]+i>=deq.front()[0])deq.pop_front();
        deq.push_front({v[i]+i,i});
    }
    cost=((2*(deq.back()[0])-x+1)*x)/2-pref[x-1];
    for(int i = x;i<n;i++){
        while(!deq.empty()&&v[i]+i>=deq.front()[0])deq.pop_front();
        deq.push_front({v[i]+i,i});
        if(deq.back()[1]<i-x+1)deq.pop_back();
        cost=min(cost,(((deq.back()[0]-(i-x+1))*2-x+1)*x)/2-pref[i]+pref[i-x]);
    }
    cout<<cost<<endl;
}
/*
v[i]+i nak kell lennie az aljanal, es v[i]+i-x nek a vegenel
ha j nel kezdodik akkor v[i]+i-j az aljanal 
ossz:(2*(v[i]+i)-x)*x/2
*/



/*
    brute force tesztelo ha kene:
    int n,x;cin>>n>>x;
    vector<int> v(n);
    for(int i = 0;i<n;i++){
        cin>>v[i];
    }
    int mn=1e15;
    for(int i = 0;i<=n-x;i++){
        int cost=0;
        int currh=v[i];
        //cout<<i<<':'<<endl;
        for(int j = i+1;j<i+x;j++){
            if(v[j]==currh-1){
                currh--;
            }
            else if(v[j]<currh-1){
                currh--;
                cost+=currh-v[j];
            }
            else{
                int diff=v[j]-(currh-1);
                cost+=diff*(j-i);
                currh=v[j];
            }
            //cout<<j<<' '<<cost<<endl;
        }
        mn=min(mn,cost);
    }
    cout<<mn<<endl;
*/
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/01ms508 KiB
2Accepted0/01ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms416 KiB
6Accepted2/21ms316 KiB
7Accepted3/31ms316 KiB
8Accepted1/12ms564 KiB
9Accepted1/12ms564 KiB
10Accepted1/12ms564 KiB
11Accepted1/12ms564 KiB
12Accepted1/12ms564 KiB
13Accepted1/12ms496 KiB
14Accepted2/22ms496 KiB
15Accepted2/22ms564 KiB
16Accepted2/227ms3540 KiB
17Accepted2/227ms3536 KiB
18Accepted2/227ms3536 KiB
19Accepted3/328ms3344 KiB
20Accepted2/227ms3380 KiB
21Accepted2/228ms3540 KiB
22Accepted2/228ms3392 KiB
23Accepted2/228ms3532 KiB
24Accepted2/228ms3380 KiB
25Accepted2/227ms3532 KiB
26Accepted2/228ms3540 KiB
27Accepted2/228ms3540 KiB
28Accepted3/327ms3540 KiB
29Accepted3/328ms3540 KiB
30Accepted3/328ms3540 KiB