Pagini recente » Cod sursa (job #2451222) | Rating Petrica Norbert Mark (petrica_norby) | Cod sursa (job #3264146) | Cod sursa (job #3235547) | Cod sursa (job #2587293)
#include <cstdio>
#include <deque>
#include <vector>
using namespace std;
deque<int> deq;
vector<int> values;
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int N, K;
scanf("%d%d", &N, &K);
values.resize(N);
long long answer = 0;
for (int i = 0; i < N; ++i)
scanf("%d", &values[i]);
for (int i = 0; i < N; ++i) {
while (!deq.empty() && values[deq.back()] > values[i])
deq.pop_back();
deq.push_back(i);
while (!deq.empty() && i - deq.front() >= K)
deq.pop_front();
if (i >= K - 1)
answer += values[deq.front()];
}
printf("%lld\n", answer);
return 0;
}