Pagini recente » Monitorul de evaluare | Borderou de evaluare (job #3104390) | Borderou de evaluare (job #2037187) | Monitorul de evaluare | Cod sursa (job #2575698)
#include <bits/stdc++.h>
#define N_MAX 5000005
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int N, K, x, v[N_MAX];
deque < int > DQ;
long long sum;
int main()
{
fin >> N >> K;
for (int i = 1; i <= N; i++)
fin >> v[i];
DQ.push_front(1);
for (int i = 2; i <= N; i++)
{
while (DQ.size() && v[DQ.back()] > v[i])
DQ.pop_back();
DQ.push_back(i);
if (i >= K)
{
if (i - DQ.front() == K)
DQ.pop_front();
sum += v[DQ.front()];
}
}
fout << sum << "\n";
return 0;
}