Pagini recente » Cod sursa (job #2405510) | Cod sursa (job #2635450) | Cod sursa (job #1205545) | Cod sursa (job #258267) | Cod sursa (job #919393)
Cod sursa(job #919393)
#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;
}