Pagini recente » Cod sursa (job #1509349) | Cod sursa (job #3289160) | Cod sursa (job #2708388) | Cod sursa (job #499916) | Cod sursa (job #3264687)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
long long v[5000010];
deque <long long> dq;
int main()
{
ifstream cin ("deque.in");
ofstream cout ("deque.out");
long long n, k, a, sum=0, intervals=0;
cin >> n >> k;
dq.push_front(1);
cin >> v[1];
for (int i=2; i<=n; i++)
{
cin >> a;
v[i] = a;
while ((!dq.empty()) && (a < v[dq.back()]))
{
dq.pop_back();
}
dq.push_back(i);
if ((dq.back() - dq.front() + 1) > k)
{
dq.pop_front();
intervals = 1;
}
else if (intervals == 1)
{
sum += v[dq.front()];
}
}
cout << sum << '\n';
return 0;
}