Pagini recente » Cod sursa (job #736745) | Magazin | Cod sursa (job #150543) | Autentificare | Cod sursa (job #3128214)
#include <fstream>
#include <iostream>
#include <deque>
std::ifstream in;
std::ofstream out;
int main() {
std::deque<int>deq, poz;
int k, n, x, sum = 0;
in.open("deque.in");
in>>n>>k;
in>>x;
deq.push_back(x);
poz.push_back(0);
for(int i = 1; i < n; i++){
in>>x;
if(i - poz.front() >= k){
deq.pop_front();
poz.pop_front();
}
if(x > deq.back()){
deq.push_back(x);
poz.push_back(i);
}
else if(deq.back() > x){
while(deq.back() > x and !deq.empty()){
deq.pop_back();
poz.pop_back();
}
deq.push_back(x);
poz.push_back(i);
}
if(i >= k - 1)
sum += deq.front();
}
in.close();
out.open("deque.out");
out<<sum;
out.close();
return 0;
}