Pagini recente » Cod sursa (job #1684064) | Cod sursa (job #1685453) | Cod sursa (job #3338416) | Cod sursa (job #3337291) | Cod sursa (job #3352574)
// https://www.infoarena.ro/problema/deque
#include <fstream>
#define MAXSZ 5000001
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int a[MAXSZ], dq[MAXSZ];
int main() {
int n, k;
fin >> n >> k;
for (int i = 0; i < n; i++)
fin >> a[i];
long long sum = 0;
int head = 0, tail = -1;
for (int i = 0; i < n; i++) {
while (head <= tail && dq[head] <= i - k)
head++;
while (head <= tail && a[dq[tail]] >= a[i])
tail--;
dq[++tail] = i;
if (i >= k - 1)
sum += a[dq[head]];
}
fout << sum << '\n';
return 0;
}