Cod sursa(job #1050230)

Utilizator ShaDoWsiD100Rzv Rzv ShaDoWsiD100 Data 8 decembrie 2013 13:33:10
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<stdio.h>
using namespace std;
FILE *f=fopen("deque.in","r"),*g=fopen("deque.out","w");
int n,i,v[5000001],deque[5000001],front,back,k;
long long S;
int main(){
    fscanf(f,"%d%d",&n,&k);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&v[i]);
    front=1;
    back=0;
    for(i=1;i<=n;i++)
    {
        while(front<=back && v[i]<=v[deque[back]])
            back--;
        deque[++back]=i;
        if(deque[front]==i-k)
            front++;
        if(i>=k)
            S+=v[deque[front]];
    }
    fprintf(g,"%d",S);
    return 0;
}