Pagini recente » Cod sursa (job #2729880) | Cod sursa (job #429863) | Cod sursa (job #1990773) | Cod sursa (job #830850) | Cod sursa (job #1458552)
#include <stdio.h>
#include <deque>
using namespace std;
typedef struct{
int val, poz;
} numar;
int main(){
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int n, k, i, x;
scanf("%d%d", &n, &k);
numar nr;
long long rez = 0;
deque<numar> d;
scanf("%d", &x);
nr.val = x;
nr.poz = 0;
d.push_back(nr);
for(i = 1; i < n; i++){
scanf("%d", &x);
nr.val = x;
nr.poz = i;
if(i >= k && i - k == d.begin()->poz)
d.pop_front();
while(!d.empty() && d.back().val > x)
d.pop_back();
d.push_back(nr);
if(i >= k - 1)
rez += d.begin()->val;
}
printf("%lld\n", rez);
return 0;
}