Cod sursa(job #2233709)

Utilizator danielsociuSociu Daniel danielsociu Data 24 august 2018 10:00:46
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
std::ifstream cin("deque.in");
std::ofstream cout("deque.out");
#define maxn 5000002
int v[maxn], dequ[maxn], N,K;
int main()
{
    long long int SUM=0;
    int Front=1,Back=0;
    cin>>N>>K;
    for(int i=1;i<=N;i++){
        cin>>v[i];
    }
    for(int i=1;i<=N;i++){
        while(Front<=Back&&v[i]<=v[dequ[Back]]){
            Back--;
        }

        dequ[++Back]=i;

        if(i-K==dequ[Front]){
            Front++;
        }
        if(i>=K){
            SUM+=v[dequ[Front]];
        }
    }
    cout<<SUM;
}