249362026-02-16 23:55:12999Sípálya (55 pont)cpp17Elfogadva 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;
*/
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms508 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms416 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva1/12ms564 KiB
9Elfogadva1/12ms564 KiB
10Elfogadva1/12ms564 KiB
11Elfogadva1/12ms564 KiB
12Elfogadva1/12ms564 KiB
13Elfogadva1/12ms496 KiB
14Elfogadva2/22ms496 KiB
15Elfogadva2/22ms564 KiB
16Elfogadva2/227ms3540 KiB
17Elfogadva2/227ms3536 KiB
18Elfogadva2/227ms3536 KiB
19Elfogadva3/328ms3344 KiB
20Elfogadva2/227ms3380 KiB
21Elfogadva2/228ms3540 KiB
22Elfogadva2/228ms3392 KiB
23Elfogadva2/228ms3532 KiB
24Elfogadva2/228ms3380 KiB
25Elfogadva2/227ms3532 KiB
26Elfogadva2/228ms3540 KiB
27Elfogadva2/228ms3540 KiB
28Elfogadva3/327ms3540 KiB
29Elfogadva3/328ms3540 KiB
30Elfogadva3/328ms3540 KiB