Cod sursa(job #2563964)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 1 martie 2020 16:33:32
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>

const int MAXN = 5e6 + 1;

using namespace std;

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

int n,k,d[MAXN],v[MAXN],st,dr;
long long suma = 0;

int main()
{
    in>>n>>k;
    for(int i = 1; i <= n; i++){
        in>>v[i];
    }
    st = 1,dr = 1;
    for(int i = 1; i <= n; i++){
        while(dr >= st && v[i] < v[d[dr]])
            dr--;
        d[++dr] = i;
        if(i - d[st] >= k)
            st++;
//        for(int i = st; i <= dr; i++)
//            cout<<v[d[i]]<<" ";
//        cout<<endl;
        if(i >= k)
            suma += v[d[st]];
    }
    out<<suma;
    return 0;
}