Cod sursa(job #1478290)

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