Cod sursa(job #2350013)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 20 februarie 2019 22:31:06
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;

const int N=(int)5e6+7;

int n,k;

int id[N];
int v[N];

int l=1;
int r=0;

ll res=0LL;

int main()
{
        ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
        freopen("deque.in","r",stdin);
        freopen("deque.out","w",stdout);
        cin>>n>>k;
        for(int i=1;i<=n;i++)
        {
                cin>>v[i];
                while(l<=r && v[i]<=v[id[r]])
                {
                        r--;
                }
                if(l<=r && i-id[l]+1>k)
                {
                        l++;
                }
                id[++r]=i;
                if(i>=k)
                {
                        res+=v[id[l]];
                }
        }
        cout<<res<<"\n";
        return 0;
}
/**

3 1

**/