Pagini recente » Cod sursa (job #840625) | Cod sursa (job #909710) | Cod sursa (job #783177) | Cod sursa (job #815559) | Cod sursa (job #1163523)
#include <iostream>
#include <cstdio>
#define nmax 5000005
using namespace std;
int n, k;
int a[nmax], Deque[nmax];
long long s;
void citire()
{
scanf("%d%d ",&n, &k);
for (int i = 1; i <= n; i++)
scanf("%d", &a[i]);
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
citire();
int Front = 1;
int Back = 0;
for (int i=1; i <= n; i++)
{
while (Front <= Back && a[i] <= a[Deque[Back]])
Back--;
Deque[++Back] = i;
if (Deque[Front] == i-k)
Front++;
if (i >= k)
s += a[ Deque[Front]];
}
printf("%lld\n", s);
return 0;
}