Pagini recente » Cod sursa (job #974810) | Cod sursa (job #40401) | Cod sursa (job #264114) | Cod sursa (job #1629277) | Cod sursa (job #2208492)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int v[5000005];
deque <int> D;
void inserare(int i)
{
if (D.empty()) D.push_back(i);
else {
while (D.size() && v[i] <= v[D.back()]) D.pop_back();
D.push_back(i);
}
}
int main()
{
int n, k;
fin >> n >> k;
for (int i = 1; i <= n; i ++) fin >> v[i];
long long suma = 0;
for (int i = 1; i <= min(n, k); i ++) inserare(i);
suma += v[D.front()], D.pop_front();
for (int i = k + 1; i <= n; i ++) {
inserare(i);
if (D.front() + k - 1 < i) D.pop_front();
suma += v[D.front()];
}
fout << suma;
fin.close();
fout.close();
return 0;
}