Pagini recente » Cod sursa (job #3181204) | Cod sursa (job #3283394) | Cod sursa (job #2744009) | Cod sursa (job #77133) | Cod sursa (job #289234)
Cod sursa(job #289234)
#include<stdio.h>
#define nmax 5000010
long n,k,p,u;
long v[nmax],deq[nmax];
void adauga(long i)
{
while(u>=p && v[deq[u]]>=v[i])
u--;
deq[++u]=i;
}
void read()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%ld%ld",&n,&k);
long i;
long long s=0;
p=1;
u=0;
for(i=1;i<=k;i++)
{
scanf("%ld",&v[i]);
adauga(i);
}
s=s+v[deq[p]];
for(i=k+1;i<=n;i++)
{
scanf("%ld",&v[i]);
if(deq[p]==i-k)
++p;
adauga(i);
s=s+v[deq[p]];
}
printf("%lld\n",s);
}
int main()
{
read();
return 0;
}