Pagini recente » Cod sursa (job #3211456) | Cod sursa (job #2294381) | Cod sursa (job #1662370) | Cod sursa (job #1072424) | Cod sursa (job #2720767)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
const int nmax = 5000001;
int v[nmax], deq[nmax];
int front, back;
int n, k, x;
long long sum;
int main()
{
in >> n >> k;
for(int i = 1; i <= n; ++i)
{
in >> v[i];
}
front = 1; back = 0;
for(int i = 1; i <= n; ++i)
{
while(front <= back && v[i] < v[deq[back]])
{
--back;
}
deq[++back] = i;
if(i - k == deq[front]) ++front;
if(i >= k)
{
sum += 1LL * v[deq[front]];
}
}
out << sum;
return 0;
}