Pagini recente » Diferente pentru implica-te/arhiva-educationala intre reviziile 57 si 56 | Cod sursa (job #933740) | Cod sursa (job #507949) | Cod sursa (job #3003247) | Cod sursa (job #351345)
Cod sursa(job #351345)
#include<stdio.h>
#define mare 10000010
long n,k,i,x,st,dr,q[5000000];
long long s;
long poz[5000000];
void rez()
{
scanf("%ld %ld",&n,&k);
st=1;
q[dr]=mare;
for(i=1;i<k;++i)
{
scanf("%ld",&x);
while(x<=q[dr] && dr>=st) dr--;
q[++dr]=x;
poz[dr]=i;
}
for(i=k;i<=n;++i)
{
scanf("%ld",&x);
while(x<=q[dr] && dr>=st) dr--;
q[++dr]=x;
poz[dr]=i;
if(poz[st]<i-k+1)
{
st++;
}
s+=q[st];
}
printf("%lld\n",s);
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
rez();
return 0;
}