Cod sursa(job #1871690)

Utilizator RaresEGaySopterean Adrian RaresEGay Data 7 februarie 2017 16:38:31
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>
#define maxn 5000010

using namespace std;

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

int n, k, deq[maxn], v[maxn];
int Front = 1, Back; // deque vid
long long Sum;

int main(){
    f >> n >> k;
    for(int i=1; i<=n; ++i) f >> v[i];

    for(int i=1; i<=n; ++i){
        while(Front <= Back && v[i] <= v[deq[Back]]) --Back;
        deq[++Back] = i;
        if(deq[Front] == i-k) Front++;
        if(i >= k) Sum += v[deq[Front]];
    }

    g << Sum << '\n';
}