Pagini recente » Cod sursa (job #155162) | Cod sursa (job #2702619) | Cod sursa (job #2000956) | Cod sursa (job #453306) | Cod sursa (job #1971631)
#include <cstdio>
#include <deque>
typedef long long i64;
const int MAXN = 5e6;
int v[MAXN];
std::deque <int> dq;
int main() {
int n, k;
i64 sol;
FILE *f = fopen("deque.in", "r");
fscanf(f, "%d%d", &n, &k);
for (int i = 0; i < n; ++i) {
fscanf(f, "%d", &v[i]);
}
fclose(f);
sol = 0;
for (int i = 0; i < n; ++i) {
if (i == dq.front() + k) {
dq.pop_front();
}
while (!dq.empty() && v[dq.back()] >= v[i]) {
dq.pop_back();
}
dq.push_back(i);
if (i + 1 >= k) {
sol += v[dq.front()];
}
}
f = fopen("deque.out", "w");
fprintf(f, "%lld\n", sol);
fclose(f);
return 0;
}