Pagini recente » Cod sursa (job #2314106) | Cod sursa (job #1460968) | Cod sursa (job #2088) | Cod sursa (job #1486341) | Cod sursa (job #2801113)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream fin("deque.in");
ofstream fout("deque.out");
fin.tie(0);
std::ios_base::sync_with_stdio(0);
const int MAX_N = 5000000;
int v[MAX_N], dq[MAX_N];
int n, k, frnt = 1, bck = 0;
long long sumMins = 0;
fin >> n >> k;
for (int i = 0; i < n; ++i) {
fin >> v[i];
}
for (int i = 0; i < n; ++i) {
while (frnt <= bck && v[i] <= v[dq[bck]]) {
--bck;
}
dq[++bck] = i;
if (dq[frnt] == i - k) {
++frnt;
}
if (i + 1 >= k) {
sumMins += v[dq[frnt]];
}
}
fout << sumMins;
}