Pagini recente » Cod sursa (job #183000) | Cod sursa (job #32042) | Cod sursa (job #1465462) | Cod sursa (job #2279716) | Cod sursa (job #2267126)
#include <bits/stdc++.h>
using namespace std;
const int NMAX=(5*(1e6));
int N, K, i;
int A[NMAX+5];
deque <int> D;
long long ans;
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d%d", &N, &K);
for(i=1; i<=N; i++)
scanf("%d", &A[i]);
D.push_back(1);
for(i=2; i<=N; i++)
{
//Analiza amortizata:
while(D.size()>0 && A[D.back()] > A[i])
D.pop_back();
D.push_back(i);
if(D.back() - D.front() >= K)
D.pop_front();
if(i>=K)
ans+=A[D.front()];
}
printf("%d\n", ans);
return 0;
}