Cod sursa(job #1549634)

Utilizator SilviuIIon Silviu SilviuI Data 12 decembrie 2015 16:01:42
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <stdio.h>
#define nmax 5000010
using namespace std;
int n,k,t[nmax],coada[nmax],pr,ul;
long long sol;
int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    scanf("%d %d",&n,&k);
    for (int i=1;i<=n;i++) scanf("%d",&t[i]);
    pr=1; ul=0;
    for (int i=1;i<=n;i++) {
        while (ul>=pr && t[coada[ul]]>=t[i]) ul--;
        ul++; coada[ul]=i;
        if (i-coada[pr]==k) pr++;
        if (i>=k) sol=sol+t[coada[pr]];
    }
    printf("%lld",sol);
    return 0;
}