Pagini recente » Cod sursa (job #615481) | Cod sursa (job #1676828) | Cod sursa (job #2141442) | Cod sursa (job #1263160) | Cod sursa (job #821294)
Cod sursa(job #821294)
#include <cstdio>
#include <deque>
using namespace std;
int f[5000010];
deque<int> deq;
int main ( ) {
freopen("deque.in","r",stdin);
//freopen("deque.out","w",stdout);
int n,k,i;
long long s=0;
scanf("%d %d",&n,&k);
for(i=1;i<=n;++i){
scanf("%d",&f[i]);
}
deq.push_front(1);
for(i=1;i<=n;++i){
for(;deq.front()<=deq.back()&&f[deq.back()]>=f[i];){
deq.pop_back();
}
deq.push_back(i);
if(deq.front()<=i-k){
deq.pop_front();
}
if(i>=k){
s+=f[deq.front()];
}
}
printf("%lld",s);
}