Pagini recente » Cod sursa (job #696939) | Cod sursa (job #612472) | Cod sursa (job #350438) | Cod sursa (job #1372173) | Cod sursa (job #2888735)
#include <bits/stdc++.h>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
const int Nmax = 5e6 + 5;
int A[Nmax], D[Nmax];
int main()
{
int N, K;
in >> N >> K;
for(int i = 1; i <= N; ++i)
in >> A[i];
int back = 1, front = 0; // heresy but it is what it is
long long ans = 0;
for(int i = 1; i <= N; ++i)
{
while(back <= front && A[i] <= A[D[front]])
front--;
front++;
D[front] = i;
if(i >= K)
{
ans += A[D[back]];
if(D[back] == i - K + 1)
back++;
}
}
out << ans;
return 0;
}