Pagini recente » Cod sursa (job #2200269) | Cod sursa (job #180234) | Cod sursa (job #600336) | Cod sursa (job #621286) | Cod sursa (job #487323)
Cod sursa(job #487323)
#include <stdio.h>
#include <math.h>
long n, k, st, dr, i, nr, a[5000010], t[5000010], ok;
long long sum;
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 += 1LL * 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 += 1LL * a[st];
}
printf("%lld\n", sum);
return 0;
}