Pagini recente » Cod sursa (job #2208189) | Cod sursa (job #155590) | Cod sursa (job #1387084) | Cod sursa (job #2046753) | Cod sursa (job #2911945)
#include <iostream>
#include <fstream>
using namespace std;
int n, k, dequeFront, dequeBack, a[5000000], deque[5000000];
long long sum;
int main() {
ifstream fin("deque.in");
ofstream fout("deque.out");
fin >> n >> k;
for (int i = 0; i < n; ++i) {
fin >> a[i];
}
dequeFront = 1;
for (int i = 0; i < n; ++i) {
while (dequeFront <= dequeBack && a[i] <= a[deque[dequeBack]]) {
--dequeBack;
}
deque[++dequeBack] = i;
if (deque[dequeFront] == i - k) {
++dequeFront;
}
if (i + 1 >= k) {
sum += a[deque[dequeFront]];
}
}
fout << sum;
return 0;
}