Pagini recente » Cod sursa (job #303499) | Cod sursa (job #20663) | Cod sursa (job #947825) | Cod sursa (job #2806375) | Cod sursa (job #1694237)
#include<bits/stdc++.h>
using namespace std;
const int NMAX = 100005;
struct PII{
int x, y;
};
int main(void){
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
deque<PII> dk_max, dk_min;
int n,k,t;
long long ans=0;
scanf("%d%d",&n,&k);
for(int i=1; i<=n; ++i){
scanf("%d",&t);
while(!dk_min.empty() && i-dk_min.front().y>=k)
dk_min.pop_front();
while(!dk_min.empty() && dk_min.back().x>=t)
dk_min.pop_back();
dk_min.push_back({t, i});
if(i>=k)
ans+=dk_min.front().x;
}
printf("%lld",ans);
return 0;
}