Pagini recente » Cod sursa (job #2554985) | Cod sursa (job #3183341) | Cod sursa (job #1427142) | Cod sursa (job #2937535) | Cod sursa (job #2352874)
#include <bits/stdc++.h>
#define MAXN 5000005
#define llg long long
int N, K;
int V[MAXN];
std::ifstream In("deque.in");
std::ofstream Out("deque.out");
std::deque <int> DQ;
void Citire() {
In >> N >> K;
}
void Rezolvare() {
llg Sum = 0;
for (int i=1; i<=N; ++i) {
In >> V[i];
if (!DQ.empty() && DQ.back() + K <= i)
DQ.pop_back();
while (!DQ.empty() && V[DQ.front()] > V[i])
DQ.pop_front();
DQ.push_front(i);
if (i>=K)
Sum += 1LL * V[DQ.back()];
} Out << Sum << '\n';
}
int main()
{
Citire();
Rezolvare();
return 0;
}