Pagini recente » Cod sursa (job #1056636) | Cod sursa (job #1506741) | Cod sursa (job #2813149) | Cod sursa (job #1938280) | Cod sursa (job #250624)
Cod sursa(job #250624)
#include <stdio.h>
#define NR 50005
/*
int scrie(int p,int u,int d[],int v[])
{
int i;
for (i=p; i<=u; i++)
printf("%d ",v[d[i]]);
printf("\n");
}
*/
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int n,k,i,v[NR],p,u,d[NR],s=0;
scanf("%d%d",&n,&k);
for (i=1; i<=n; i++)
scanf("%d",&v[i]);
p=1;u=0;
d[++u]=1;
for (i=2; i<=k; ++i)
{
while (u>=p && v[d[u]]>=v[i])
--u;
d[++u]=i;
//scrie(p,u,d,v);
}
s=v[d[p]];
//printf("%d\n",v[d[p]]);
for (i=k+1; i<=n; ++i)
{
while (d[p]<i-k+1)
++p;
while(u>=p && v[d[u]]>=v[i])
--u;
d[++u]=i;
s+=v[d[p]];
//scrie(p,u,d,v);
//printf("%d\n",v[d[p]]);
}
printf("%d\n",s);
return 0;
}