Pagini recente » Cod sursa (job #1748130) | Cod sursa (job #2945121) | Cod sursa (job #2853341) | Cod sursa (job #2377656) | Cod sursa (job #1199708)
#include <cstdio>
using namespace std;
int a[5000009],n,i,k,d[5000009],dr,x,st;
long long s;
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d%d%d",&n,&k,&a[1]);
dr=1;d[1]=1;st=1;
for(i=2;i<=k;++i)
{
scanf("%d",&a[i]);
while(dr && a[i]<=a[d[dr]])
dr--;
d[++dr]=i;
}
s=a[d[1]];
for(i=k+1;i<=n;++i)
{
scanf("%d",&a[i]);
while(d[st]<=i-k && st<=dr) st++;
while(dr>=st && a[i]<=a[d[dr]])
dr--;
d[++dr]=i;
s+=1LL*a[d[st]];
}
printf("%lld\n",s);
return 0;
}