Pagini recente » Cod sursa (job #382789) | Cod sursa (job #3244385) | Cod sursa (job #2550652) | Cod sursa (job #1362142) | Cod sursa (job #271352)
Cod sursa(job #271352)
#include <stdio.h>
#define NMAX 5000010
long n, k;
long a[NMAX];
long deque[NMAX];
long long sum;
int main()
{
long i = 1;
long st, dr;
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%ld %ld", &n, &k);
for(i = 1; i <= n; ++i)
scanf("%ld", &a[i]);
st = 1;
dr = 0;
for(i = 1; i <= n; ++i)
{
while(st <= dr && a[ deque[dr] ] >= a[i])
--dr;
deque[++dr] = i;
if(deque[st] == i-k)
++st;
if(i >= k)
sum += a[ deque[st] ];
}
printf("%lld\n", sum);
return 0;
}