Pagini recente » Cod sursa (job #2843365) | Cod sursa (job #2254224) | Cod sursa (job #2245154) | Cod sursa (job #2476822) | Cod sursa (job #1061060)
#include <stdio.h>
#define maxim 5000010
int n, k;
int a[maxim], deque[maxim];
int top, tail;
long long suma;
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int i;
scanf("%d %d ", &n, &k);
for (i = 1; i <= n; i++)
scanf("%d ", &a[i]);
top = 1;
tail = 0;
for (i = 1; i <= n; i++)
{
while (top <= tail && a[i] <= a[deque[tail]]) tail--;
deque[++tail] = i;
if (deque[top] == i-k) top++;
if (i >= k) suma += a[deque[top]];
}
printf("%lld\n", suma);
return 0;
}