Pagini recente » Cod sursa (job #2033577) | Cod sursa (job #2080586) | Cod sursa (job #283879) | Cod sursa (job #1499302) | Cod sursa (job #979062)
Cod sursa(job #979062)
#include<stdio.h>
typedef struct deque
{
int n,p;
}deque;
deque d[5000002];
int v[5000002];
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int n,k,a,i,j;
long long s=0;
scanf("%d%d",&n,&k);
for(i=1;i<=n;++i)
scanf("%d",&v[i]);
i=1;j=0;
d[0].n=-200000000;
for(a=1;a<k;++a)
{
while(d[j].n>=v[a]&&j>=i)
--j;
++j;
d[j].n=v[a];
d[j].p=a;
}
for(a=k;a<=n;++a)
{
if(d[i].p==a-k)
++i;
while(d[j].n>=v[a]&&j>=i)
--j;
++j;
d[j].n=v[a];
d[j].p=a;
s+=d[i].n;
}
printf("%lld\n",s);
return 0;
}