Cod sursa(job #2714128)

Utilizator CalinRadoiRadoi Calin CalinRadoi Data 1 martie 2021 12:32:26
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("deque.in");
ofstream out("deque.out");

int dq[5000001];
long long v[5000001];
int n, k;
long long ans;
int st, dr =-1;

int main()
{
    in>>n>>k;
    for(int i=0;i<n;i++){
        in>>v[i];
    }
    for(int i=1;i<=n;i++)
    {
        if(st<=dr && dq[st] == i-k){
            st++;
        }
        while(st<=dr && v[i]<=v[dq[dr]]){
            dr--;
        }
        dq[++dr]=i;
        if(st<=dr && i>=k){
            ans = ans + v[dq[st]];
        }
    }
    out<< ans << '\n';
}

/*
cin>>v[i];
        if(st<=dr && dq[st] == i-k){
            st++;
        }
        while(st<=dr && v[i]<=v[dq[dr]]){
            dr--;
        }
        dq[dr++]=i;
        if(i>=k-1){
            if(i>=k-1){
                s+=v[dq[st]];
            }
        }
*/