Pagini recente » Cod sursa (job #3280320) | Cod sursa (job #2891070) | Cod sursa (job #1926895) | Cod sursa (job #2987467) | Cod sursa (job #2217698)
#include <bits/stdc++.h>
using namespace std;
const int NMax = 5000003;
deque<pair<int,int> > deq;
int n,k;
int main(){
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d%d",&n,&k);
long long ans = 0;
for(int i = 1; i <= n; ++i){
int x;
scanf("%d",&x);
if(deq.empty()){
deq.push_back(make_pair(x,i));
continue;
}
if(i - k + 1 > deq.front().second)
deq.pop_front();
while(!deq.empty() && x <= deq.back().first)
deq.pop_back();
deq.push_back(make_pair(x,i));
if(i >= k)
ans += 1LL*deq.front().first;
}
printf("%lld\n",ans);
return 0;
}