Pagini recente » Cod sursa (job #2588199) | Cod sursa (job #864290) | Cod sursa (job #2588191) | Cod sursa (job #3289013) | Cod sursa (job #3125266)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("deque.in");
ofstream g ("deque.out");
const int nmax = 5e6 + 3;
long long n, k, v[nmax], sol;
deque <long long> q;
int main()
{
f >> n >> k;
for (int i = 1; i <= n; ++i)
f >> v[i];
for (int i = 1; i <= k; ++i)
{
while (true)
{
if (q.empty())
break;
if (v[q.back()] > v[i])
q.pop_back();
else break;
}
q.push_back(i);
}
sol = v[q.front()];
for (int i = k + 1; i <= n; ++i)
{
if (i - q.front() == k)
q.pop_front();
while (true)
{
if (q.empty())
break;
if (v[q.back()] > v[i])
q.pop_back();
else break;
}
q.push_back(i);
sol += v[q.front()];
}
g << sol;
return 0;
}