Pagini recente » Cod sursa (job #2221422) | Cod sursa (job #2767048) | Rating dinu mario gabriel (mariodinu) | Cod sursa (job #182323) | Cod sursa (job #2610742)
#include <iostream>
#include <fstream>
using namespace std;
int A[5000000], DQ[5000000], st = 0, dr = -1;
long long s;
void pushback(int x)
{
dr++;
DQ[dr] = x;
}
void popback()
{
dr--;
}
void popfront()
{
st++;
}
int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
int N,K,i;
fin >> N >> K;
for (i = 0; i < N; i++)
fin >> A[i];
for (i = 0; i < N; i++)
{
while (st <= dr && A[i] < A[DQ[dr]])
popback();
pushback(i);
if (i - K == DQ[st])
popfront();
if (i >= K - 1)
s = s + A[DQ[st]];
}
fout << s;
fin.close();
fout.close();
return 0;
}