Pagini recente » Cod sursa (job #703849) | Cod sursa (job #3308694) | Cod sursa (job #2913874) | Cod sursa (job #2162286) | Cod sursa (job #3352320)
#include <bits/stdc++.h>
#include <deque>
#include <fstream>
using namespace std;
deque<int> dq;
int v[5000005];
int N, K;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main()
{
fin >> N >> K;
for (int i = 1; i <= N; i++)
{
fin >> v[i];
}
for (int i = 1; i <= K - 1; i++)
{
while (!dq.empty() && v[i] <= v[dq.back()])
{
dq.pop_back();
}
dq.push_back(i);
}
long long sum = 0;
for (int i = K; i <= N; i++)
{
while (!dq.empty() && v[i] <= v[dq.back()])
{
dq.pop_back();
}
dq.push_back(i);
while (i - dq.front() >= K)
{
dq.pop_front();
}
sum += v[dq.front()];
}
fout << sum;
}