Pagini recente » Cod sursa (job #2917583) | Cod sursa (job #1827387) | Cod sursa (job #2089333) | Cod sursa (job #2367476) | Cod sursa (job #1923288)
#include<stdio.h>
using namespace std;
int n,k;
int v[5000005];
int deq[5000005];
int front,back;
void printdeq()
{
for(int i=front;i<=back;i++) printf("DEQ:%d NUMBER:%d ",deq[i],v[deq[i]]);
printf("\n");
//printf("%d\n",v[deq[back]]);
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
long long sum=0;
scanf("%d %d",&n,&k);
front=1;back=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&v[i]);
while(front<=back&&v[deq[back]]>=v[i]) back--;
deq[++back]=i;
if(deq[front]==i-k) front++;
//printdeq();
if(i>=k) sum+=v[deq[front]];
}
printf("%d",sum);
}