Cod sursa(job #1046719)

Utilizator Robert29FMI Tilica Robert Robert29 Data 3 decembrie 2013 13:24:31
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <stdio.h>
FILE*f=fopen("deque.in","r");
FILE*g=fopen("deque.out","w");
int n,k,v[5000001],i,p,u,d[5000001];
long long s;
int main() {
    fscanf(f,"%d%d",&n,&k);
    p=1;
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&v[i]);
    for(i=1;i<=n;i++){
        while(p<=u && v[i]<=v[d[u]])
            u--;
        d[++u]=i;
        if(d[p]==i-k)
            p++;
        if(i>=k)
            s+=v[d[p]];
    }
    fprintf(g,"%lld",s);
 
    fclose(g);
    fclose(f);
    return 0;
}