Cod sursa(job #919355)
#include <stdio.h>
#include <deque>
using namespace std;
struct element{
int ind, val;
};
deque <element> qmin;
int n, k, 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.front().val > aux.val) qmin.pop_front();
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("%i\n", solution);
fclose(stdout);
return 0;
}