Cod sursa(job #2009914)

Utilizator stefan_creastaStefan Creasta stefan_creasta Data 11 august 2017 11:04:53
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>
using namespace std;
const int NMAX = 5000005;
int v[NMAX], d[NMAX];

int main()
{
    int n, k, i;
    long long int sum = 0;
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    scanf("%d%d", &n, &k);
    for(i = 1;i <= n; ++i) {
        scanf("%d", &v[i]);
    }
    int fata = 1, spate = 0;
    for(i = 1;i <= n; ++i) {
        while(fata <= spate && v[i] <= v[d[spate]]) {
            --spate;
        }
        d[++spate]=i;
        if(d[fata] == i-k) {
            ++fata;
        }
        if(i >= k) {
            sum += v[d[fata]];
        }
    }
    printf("%lld\n", sum);
    return 0;
}