Pagini recente » Cod sursa (job #1371890) | Cod sursa (job #703117) | Cod sursa (job #1765263) | Cod sursa (job #73433) | Cod sursa (job #1146508)
#include <fstream>
const int NMAX = 5000005;
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int N,K,Deque[NMAX],front,back,A[NMAX];
long long sol;
int main()
{
f >> N >> K;
for (int i = 1; i <= N; ++i)
{
f >> A[i];
}
back = 0;
front = 1;
for (int i = 1; i <= N; ++i)
{
while (front <= back && A[i] <= A[ Deque[back] ])
back--;
Deque[++back] = i;
if (Deque[front] == i-K)
front ++;
if (i >= K)
sol += A[ Deque[front] ];
}
g << sol;
}