Pagini recente » Cod sursa (job #2383288) | Cod sursa (job #2852344) | Cod sursa (job #510989) | Cod sursa (job #14300) | Cod sursa (job #380404)
Cod sursa(job #380404)
#include<stdio.h>
int dq[1<<23],v[1<<23];
int n,k,i,st=1,dr=0;
long long s;
void stanga(int i)
{
if(i-dq[st]==k)
++st;
}
void dreapta(int i)
{
while(st<=dr&& v[dq[dr]]>=v[i])
--dr;
dq[++dr]=i;
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;++i)
scanf("%d",&v[i]);
for(i=1;i<k;i++)
dreapta(i);
for(i=k;i<=n;++i)
{
stanga(i);
dreapta(i);
s+=v[dq[st]];
}
printf("%d",s);
return 0;
}