Pagini recente » Cod sursa (job #1070205) | Cod sursa (job #2628203) | Cod sursa (job #3245189) | Cod sursa (job #1070207) | Cod sursa (job #2391707)
#include<cstdio>
#define M 1<<17
#define P 5000001
char r[M];
int q=M,v[P],d[P],p=1,u,i,n,k;
long long s;
inline char N()
{
if(q==M)
fread(r,1,M,stdin),q=0;
return r[q++];
}
inline int A()
{
int x=0,s=1;
char c=N();
while(!(c>='0'&&c<='9')&&c!='-')
c=N();
if(c=='-')
c=N(),s=-1;
while(c>='0'&&c<='9')
x=x*10+c-'0',c=N();
return x*s;
}
int main()
{
freopen("deque.in","r",stdin),freopen("deque.out","w",stdout),n=A(),k=A();
for(i=1;i<=n;i++)
v[i]=A();
for(i=1;i<k;i++)
{
while(p<=u&&v[i]<=v[d[u]])
u--;
d[++u]=i;
}
for(i=k;i<=n;i++)
{
while(p<=u&&v[i]<=v[d[u]])
u--;
d[++u]=i;
if(d[p]==i-k)
p++;
s+=v[d[p]];
}
printf("%lld",s);
}