Pagini recente » Cod sursa (job #456011) | Cod sursa (job #666281) | Cod sursa (job #2516243) | Cod sursa (job #1150605) | Cod sursa (job #323604)
Cod sursa(job #323604)
#include<cstdio>
const int N=5000001;
int v[N],d[N],p=1,u=0,n,k;
inline void stanga(int i)
{
if(d[p]+k==i)
++p;
}
void dreapta(int i)
{
while(p<=u && v[d[u]]>=v[i])
--u;
}
void citire()
{
int i;
scanf("%d%d",&n,&k);
for(i=1;i<=n;++i)
scanf("%d",&v[i]);
}
long long suma()
{
int i;
long long s=0;
for(i=1;i<=n;++i)
{
dreapta(i);
d[++u]=i;
if(i>=k)
{
stanga(i);
s+=(long long)v[d[p]];
}
}
return s;
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
citire();
printf("%lld\n",suma());
return 0;
}