Cod sursa(job #1649268)

Utilizator cordun_cristinaCristina Maria Cordun cordun_cristina Data 11 martie 2016 13:04:09
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <iostream>
#include <fstream>

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

const int Nmax = 5000005;
int n, a[Nmax], D[Nmax], s, k, front, back;

int main()
{
    f>>n>>k;
    for(int i = 1; i <= n; i++) f>>a[i];
    front = 1;
    back = 0;
    for(int i = 1; i <= n; i++)
    {
        while(front <= back && a[i] <= a[D[back]]) back--;
        D[++back] = i;
        if(D[front] == i-k) front++;
        if(i >= k) s += a[D[front]];
    }
    g<<s<<'\n';
    return 0;
}