Pagini recente » Cod sursa (job #2004092) | Cod sursa (job #1040569) | Monitorul de evaluare | Cod sursa (job #918864) | Cod sursa (job #2022371)
#include <fstream>
#include <deque>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
long long nr[5000500];
deque <int> D;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
long long cont = 0;
int n, k;
cin>>n>>k;
for (int i=1; i<=n; i++){
cin>>nr[i];
}
for (int i=1; i<=k; i++){
while(!D.empty() && nr[D.front()] > nr[i]){
D.pop_front();
}
D.push_front(i);
}
cont += nr[D.back()];
for (int i=k+1; i<=n; i++){
while(!D.empty() && nr[D.front()] > nr[i]){
D.pop_front();
}
D.push_front(i);
if (D.back() <= i - k){
D.pop_back();
}
cont += nr[D.back()];
}
cout<<cont;
return 0;
}