Pagini recente » Cod sursa (job #1400043) | Cod sursa (job #1364743) | Cod sursa (job #2574001) | Cod sursa (job #370060) | Cod sursa (job #1538537)
#include <fstream>
#include <deque>
#define N 5000010
using namespace std;
ifstream f ("deque.in");
ofstream g ("deque.out");
int v[N];
deque <int> dq;
int main()
{
int n, k, i, a;
long long int suma;
suma = 0;
f >> n >> k;
for (int i = 1; i <= n ; ++i)
f >> v[i];
for (i = 1; i <=k; ++i)
{
while (!dq.empty() && v[dq.back()] > v[i])
dq.pop_back();
dq.push_back(i);
}
for (i = k + 1; i <= n; ++i)
{
a = dq.front();
suma += v[a];
if (i - k >= a)
dq.pop_front();
while (!dq.empty() && v[dq.back()] > v[i])
dq.pop_back();
dq.push_back(i);
}
suma += v[dq.front()];
g << suma;
return 0;
}