Pagini recente » Borderou de evaluare (job #3341761) | Cod sursa (job #3301629) | Cod sursa (job #339470) | Cod sursa (job #3345055)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int const NMAX = 5e6;
int arr[1 + NMAX];
deque <int> dq;
int main() {
long long n, k, ans = 0;
in >> n >> k;
for(int i = 1;i <= n;i++) {
in >> arr[i];
while(!dq.empty() && arr[i] < arr[dq.back()]) {
dq.pop_back();
}
while(!dq.empty() && dq.front() <= i-k) {
dq.pop_front();
}
dq.push_back(i);
if(i >= k) {
ans += arr[dq.front()];
}
}
out << ans << '\n';
return 0;
}