Pagini recente » Cod sursa (job #1863848) | Cod sursa (job #2645797) | Cod sursa (job #2402611) | Cod sursa (job #876756) | Cod sursa (job #928167)
Cod sursa(job #928167)
#include<cstdio>
int dq[5000100],k,n,st=1,dr,v[5000100];
long long s;
void stanga(int i)
{
if(i-dq[st]==k)
st++;
}
void dreapta(int i)
{
while(st<=dr&&v[i]<=v[dq[dr]])
dr--;
}
int main()
{
int i;
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<=n;i++)
{
if(i>k)
stanga(i);
dreapta(i);
dq[++dr]=i;
if(i>=k)
s=(long long)s+v[dq[st]];
}
printf("%lld",s);
return 0;
}