Pagini recente » Cod sursa (job #2300058) | Cod sursa (job #1890419) | Cod sursa (job #2925419) | Cod sursa (job #2530721) | Cod sursa (job #597303)
Cod sursa(job #597303)
#include <iostream>
#include <deque>
using namespace std;
#define maxN 5000005
deque <int> D;
int A[maxN];
int main()
{
freopen ("deque.in", "r", stdin);
freopen ("deque.out", "w", stdout);
int N, K;
long long S = 0;
scanf ("%d %d", &N, &K);
for (int i = 1; i <= N; ++ i)
{
scanf ("%d", &A[i]);
if ( ! D.empty() )
if (D.front() <= i - K) D.pop_front();
while ( ! D.empty() && A[D.back()] > A[i] ) D.pop_back();
D.push_back (i);
if (i >= K) S += A[D.front()];
}
printf ("%lld", S);
return 0;
}