Pagini recente » Cod sursa (job #2694509) | Cod sursa (job #813900) | Cod sursa (job #2437388) | Cod sursa (job #2980264) | Cod sursa (job #2030002)
#include <cstdio>
using namespace std;
int dq[5000005];
int v[5000005];
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int st=1,dr=1,n,k,x;
long long s=0;
scanf("%d %d",&n,&k);
scanf("%d",&v[1]);
dq[1]=v[1];
for(int i=2;i<=k;++i)
{
scanf("%d",&v[i]);
while(dq[dr]>v[i]&&dr>0)
{
dr--;
}
dq[++dr]=v[i];
}
s+=dq[st];
for(int i=k+1;i<=n;++i)
{
scanf("%d",&v[i]);
if(dq[st]==v[i-k])
{
st++;
}
while(dq[dr]>v[i]&&dr>st-1)
{
dr--;
}
dq[++dr]=v[i];
s+=dq[st];
}
printf("%lld",s);
return 0;
}