Pagini recente » Cod sursa (job #2557119) | Cod sursa (job #327894) | Cod sursa (job #667190) | Cod sursa (job #2886402) | Cod sursa (job #487320)
Cod sursa(job #487320)
#include <stdio.h>
#include <math.h>
long n, k, st, dr, i, nr, a[5000010], t[5000010], sum, ok;
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%ld %ld", &n, &k);
st = 1;dr = 1;
for (i = 1; i <= n; ++i) {
ok = 0;
scanf("%ld", &nr);
if (i == 1) {
a[1] = nr;
t[1] = 1;
if (i >= k) sum += a[st];
continue;
}
if (i - t[st] >= k) ++st;
while (a[dr] >= nr && dr >= st) --dr;
a[++dr] = nr;
t[dr] = i;
if (i >= k) sum += a[st];
}
printf("%ld\n", sum);
return 0;
}