Cod sursa(job #306058)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 19 aprilie 2009 16:26:43
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<algorithm>
using namespace std;

#define DIM 5000001

int n,k,a[DIM],deque[DIM];
long long sum;

void solve(){
    int i,st,dr;

    scanf("%d%d",&n,&k);
    for(i=1; i<=n; ++i)
        scanf("%d",&a[i]);
    st=1;
    dr=0;
    for(i=1; i<=n; ++i){
        for(; st<=dr&&a[deque[dr]]>=a[i]; --dr);
        deque[++dr]=i;
        if(deque[st]==i-k)
            ++st;
        if(i>=k)
            sum+=a[deque[st]];}
    printf("%lld",sum);}

int main(){

    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);

    solve();
    return 0;}