Pagini recente » Cod sursa (job #1735831) | Cod sursa (job #2066519) | Cod sursa (job #1050595) | Cod sursa (job #1897624) | Cod sursa (job #255737)
Cod sursa(job #255737)
#include <stdio.h>
#define NMAX 5000001
int N, K, x[NMAX], poz[NMAX];
long long sum;
int main()
{
int i, beg, end;
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d %d", &N, &K);
for ( i = 1; i <= N; i++)
scanf("%d", &x[i]);
beg = end = 1;
poz[1] = 1;
for ( i = 2; i <= N; i++)
{
if ( poz[beg] + K <= i)
beg++;
for (; x[i] < x[poz[end]] && beg <= end; --end);
poz[++end] = i;
if ( i >= K)
sum += x[poz[beg]];
}
printf("%lld\n", sum);
return 0;
}