Cod sursa(job #919393)

Utilizator cernat.catallinFMI Cernat Catalin Stefan cernat.catallin Data 19 martie 2013 17:05:41
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#include <deque>
using namespace std;

struct element{
    int ind, val;
};

deque <element> qmin;
int n, k;
long long int solution;
element aux;

void read(){
    scanf("%i %i", &n, &k);
    for(int i = 1; i <= n ;++i){
        scanf("%i", &aux.val);
        aux.ind = i;

        if(!qmin.empty() && qmin.front().ind == i-k) qmin.pop_front();

        while(!qmin.empty() && qmin.back().val >= aux.val) qmin.pop_back();
        qmin.push_back(aux);

        if(i >= k)
            solution += qmin.front().val;
    }
    fclose(stdin);
}

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

    read();

    printf("%lli\n", solution);

    fclose(stdout);

    return 0;
}