Pagini recente » Cod sursa (job #1849958) | Cod sursa (job #1770462) | Cod sursa (job #1885125) | Cod sursa (job #1089330) | Cod sursa (job #3128217)
#include <fstream>
#include <iostream>
#include <deque>
#include <vector>
std::ifstream in;
std::ofstream out;
int main() {
std::deque<int>deq;
std::vector<int>v;
long long k, n, sum = 0, x;
in.open("deque.in");
in>>n>>k;
in>>x;
v.push_back(x);
deq.push_back(0);
for(int i = 1; i < n; i++){
in>>x;
v.push_back(x);
if(i - deq.front() >= k){
deq.pop_front();
}
if(v[i] > v[deq.back()]){
deq.push_back(i);
}
else if(v[deq.back()] > v[i]){
while(v[deq.back()] > v[i] and !deq.empty()){
deq.pop_back();
}
deq.push_back(i);
}
if(i >= k - 1)
sum += v[deq.front()];
}
in.close();
out.open("deque.out");
out<<sum;
out.close();
return 0;
}