Pagini recente » Cod sursa (job #462144) | Cod sursa (job #1755925) | Cod sursa (job #516030) | Cod sursa (job #224575) | Cod sursa (job #794729)
Cod sursa(job #794729)
#include <cstdio>
#define N 5000005
using namespace std;
int n,k;
long long a[N];
long long deque[N];
void citire()
{
scanf("%d %d",&n,&k);
a[0] = -10000005;
for(int i = 1 ; i <= n ; i++)
{scanf("%lld",&a[i]);
}
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int back = 1, front = 1;
long long sum = 0;
citire();
for(int i = 1 ; i <=n;i++)
{
while(back < front&& a[i] <= a[deque[front - 1]])
{
front--;
}
deque[front++] = i;;
if(deque[back] == i - k )
back++;
if(i >= k)
sum += a[deque[back]];
}
printf("%lld", sum);
return 0;
}