Pagini recente » Cod sursa (job #3237835) | Cod sursa (job #439607) | Cod sursa (job #2360819) | Cod sursa (job #3203106) | Cod sursa (job #1161178)
/*
Keep It Simple!
*/
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include<cstdio>
#define MaxN 5000005
int N,K;
int Vals[MaxN], Dequeue[MaxN];
int Front, Back;
long long Sum;
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", &Vals[i]);
for (int i = 1; i <= N; i++)
{
while (Front <= Back && Vals[i] <= Vals[Dequeue[Back]]) Back--;
Dequeue[++Back] = i;
if (Dequeue[Front] == i - K) Front++;
if (i >= K) Sum += Vals[Dequeue[Front]];
}
printf("%lld", Sum);
}