Pagini recente » Cod sursa (job #264292) | Cod sursa (job #385726) | Cod sursa (job #2363319) | Cod sursa (job #248421) | Cod sursa (job #724465)
Cod sursa(job #724465)
#include <cstdio>
#include <list>
#define val first
#define index second
#define NMax 5000010
using namespace std;
pair<long long,int> q[NMax];
long long n,k,tot,x,lo=1,hi;
int main() {
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%lld %lld",&n,&k);
for(long o=1;o<=n;o++) {
scanf("%lld",&x);
while(lo<=hi && q[hi].val >= x)
hi--;
while(lo<=hi && q[lo].index <= o-k)
lo++;
q[++hi]= make_pair(x,o);
if(k<=o)
tot+=q[lo].val;
}
printf("%lld\n",tot);
return 0;
}