Pagini recente » Cod sursa (job #2257419) | Cod sursa (job #107611) | Cod sursa (job #944292) | Cod sursa (job #1143276) | Cod sursa (job #2208491)
#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 (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];
int 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;
return 0;
}