Pagini recente » Cod sursa (job #271981) | Cod sursa (job #2226633) | Cod sursa (job #1909888) | Cod sursa (job #155703) | Cod sursa (job #2140556)
#include <stdio.h>
#include <stdlib.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;
char buf[0x20];
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d %d\n", &n, &k);
t = h = 0;
r = 0;
for (i = 0; i < n; i++) {
fgets(buf, sizeof buf, stdin);
x = atoi(buf);
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;
}