Pagini recente » Cod sursa (job #2468026) | Cod sursa (job #3259047) | Cod sursa (job #178116) | Cod sursa (job #2475575) | Cod sursa (job #2636334)
#include <stdio.h>
#include <deque>
#define NMAX 5000000
FILE* fin, * fout;
int v[NMAX], n, k;
int main() {
fin = fopen("deque.in", "r");
fout = fopen("deque.out", "w");
fscanf(fin, "%i %i", &n, &k);
for (int i = 0;i < n;++i)
fscanf(fin, "%i", &v[i]);
std::deque<int> q;
q.push_back(0);
long long int s = 0;
for (int i = 1;i < n;++i) {
if (q.front() < i - k + 1)
q.pop_front();
while (!q.empty() && v[i] < v[q.back()])
q.pop_back();
q.push_back(i);
if (i >= k - 1)
s += v[q.front()];
}
fprintf(fout, "%lld", s);
return 0;
}