Pagini recente » Cod sursa (job #2284892) | Cod sursa (job #2243420) | Cod sursa (job #2766986) | Cod sursa (job #508415) | Cod sursa (job #2140526)
#include <stdio.h>
#define SIZE 5000000
struct dqe {
int x;
int i;
};
static struct dqe dq[SIZE];
int main(void)
{
int n, k, x, i, t, h;
long long r;
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d %d", &n, &k);
t = h = SIZE;
r = 0;
for (i = 0; i < n; i++) {
scanf("%d", &x);
while (t - 1 >= h && dq[t-1].x >= x) {
t--;
}
dq[t].x = x;
dq[t].i = i;
t++;
if (i - k >= dq[h].i) {
h++;
}
if (i >= k - 1) {
r += dq[h].x;
}
}
printf("%lld\n", r);
return 0;
}