Pagini recente » Cod sursa (job #416210) | Cod sursa (job #165517) | Cod sursa (job #1507583) | Cod sursa (job #3318227) | Cod sursa (job #3355766)
#include <iostream>
#include <fstream>
using namespace std;
const int ma = 5000005;
int a[ma];
int dq[ma];
int main() {
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k;
fin >> n >> k;
for (int i = 1; i <= n; ++i) {
fin >> a[i];
}
long long suma_minime = 0;
int st = 1, dr = 0;
for (int i = 1; i <= n; ++i) {
while (st <= dr && a[dq[dr]] >= a[i]) {
dr--;
}
dr++;
dq[dr] = i;
if (dq[st] <= i - k) {
st++;
}
if (i >= k) {
suma_minime += a[dq[st]];
}
}
fout << suma_minime << "\n";
return 0;
}