Pagini recente » Cod sursa (job #1841682) | Cod sursa (job #2358437) | Cod sursa (job #2392921) | Cod sursa (job #348604) | Cod sursa (job #350667)
Cod sursa(job #350667)
#include<stdio.h>
#define nmax 5000010
#define inf 10000010
long n,q[nmax],p[nmax],k;
long long s;
void read()
{
scanf("%ld%ld",&n,&k);
}
void rez()
{
long i,st,dr,x;
st=dr=1;
q[dr]=inf;
for (i=1;i<k;i++)
{
scanf("%ld",&x);
while (q[dr]>=x && dr>=st)
{
dr--;
}
q[++dr]=x;
p[dr]=i;
}
for (i=k;i<=n;i++)
{
scanf("%ld",&x);
while (q[dr]>=x && dr>=st)
{
dr--;
}
q[++dr]=x;
p[dr]=i;
if (p[st]<i-k+1)
st++;
s+=q[st];
}
printf("%lld",s);
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
read();
rez();
return 0;
}