Pagini recente » Cod sursa (job #484545) | Cod sursa (job #664255) | Cod sursa (job #1836302) | Cod sursa (job #2775165) | Cod sursa (job #302874)
Cod sursa(job #302874)
#include <stdio.h>
#define NM 5000001
int dq[NM];
int t[NM];
int k,st,dr,n;
long long r;
inline void popback()
{dr--;
}
inline void popfront()
{st++;
}
inline void push(int x,int i)
{dq[++dr]=x;
t[dr]=i;
}
int main()
{freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d",&n,&k);
int x,i;
st=1;
dr=0;
for (i=1;i<=n;i++)
{scanf("%d",&x);
while (x<dq[dr]&&st<=dr)
{popback();
}
push(x,i);
if (t[dr]-t[st]+1>k) popfront();
if (i>=k) r+=dq[st];
}
printf("%lld",r);
return 0;
}