Pagini recente » Cod sursa (job #2705068) | Cod sursa (job #205308) | Cod sursa (job #803036) | Cod sursa (job #2858715) | Cod sursa (job #3220916)
#include <fstream>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream gout("deque.out");
int k,n,v[5000002];
deque <int> dk;
long long s;
int main(){
fin>>n>>k;
for(int i=1; i<=n; ++i)
fin>>v[i];
for(int i=1; i<=k; ++i){
while(!dk.empty() && v[i]<=v[dk.back()])
dk.pop_back();
dk.push_back(i);
}
s=v[dk.front()];
for(int i=k+1; i<=n; ++i){
while(!dk.empty() && v[i]<=v[dk.back()])
dk.pop_back();
if(!dk.empty() && i-dk.front()==k) dk.pop_front();
dk.push_back(i);
s+=v[dk.front()];
}
gout<<s;
return 0;
}