Pagini recente » Cod sursa (job #2287954) | Cod sursa (job #3189373) | Cod sursa (job #1546609) | Cod sursa (job #965436) | Cod sursa (job #1553411)
#include <fstream>
#include <deque>
#include <iostream>
using namespace std;
const int MAX = 5000005;
int N, K, V[MAX];
int main() {
ifstream f("deque.in");
ofstream g("deque.out");
long long sum = 0;
f >> N >> K;
deque<int> deque;
for(int i = 0; i < N; i++) {
f >> V[i];
if(!(deque.empty()) && deque.front() <= i - K) {
deque.pop_front();
}
while(!(deque.empty()) && V[deque.back()] > V[i]) {
deque.pop_back();
}
deque.push_back(i);
if(i >= K - 1) {
sum += V[deque.front()];
}
}
g << sum;
return 0;
}