Pagini recente » Cod sursa (job #1652309) | Cod sursa (job #2874699) | Cod sursa (job #2715509) | Cod sursa (job #2519047) | Cod sursa (job #1871561)
#include <stdio.h>
#define nmax 5000010
using namespace std;
int n, k, pr, ul;
int t[nmax], udeque[nmax];
long long int sol = 0;
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d %d", &n, &k);
for (int i = 1; i <= n; i++) scanf("%d", &t[i]);
pr = 1; ul = 0;
for (int i = 1; i <= n; i++) {
while (pr <= ul && t[udeque[ul]] >= t[i]) ul--;
ul++; udeque[ul] = i;
if (i - udeque[pr] == k) pr++;
if (i >= k) sol = sol + t[udeque[pr]];
}
printf("%lld", sol);
return 0;
}