Pagini recente » Cod sursa (job #891584) | Cod sursa (job #3255389) | Cod sursa (job #1497573) | Cod sursa (job #1933260) | Cod sursa (job #3127366)
#include <iostream>
#include <fstream>
using namespace std;
const int maxim = 5000001;
int n, k, a[maxim], d[maxim], cap = 1, coada = 0;
int main() {
ifstream fin("deque.in");
ofstream fout("deque.out");
fin >> n >> k;
for (int i = 1; i <= n; i++) {
fin >> a[i];
}
long long sum = 0;
for (int i = 1; i <= n; i++) {
if (cap <= coada && d[cap] <= i - k) {
cap++;
}
while (cap <= coada && a[d[coada]] >= a[i]) {
coada--;
}
d[++coada] = i;
if (i >= k) {
sum += a[d[cap]];
}
}
fout << sum << endl;
fin.close();
fout.close();
return 0;
}