Cod sursa(job #1147477)

Utilizator timicsIoana Tamas timics Data 19 martie 2014 21:17:13
Problema Deque Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<stdio.h>
#include<iostream>
#include<deque>
using namespace std;
int N,k,a[100];
long long S=0;
deque<int> d;

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",&a[i]);
    }

    for(int i=1;i<=N;++i) {
       
        while(!d.empty() && a[i]<a[d.back()]) {
            d.pop_back();
        }
        d.push_back(i);
        
        if(d.front()==i-k) {
            d.pop_front();
        }
        if(i>=k) {
            S += a[d.front()];
        }
    }
    printf("%d",S);
    return 0;
}