Pagini recente » Cod sursa (job #3300659) | Cod sursa (job #645262) | Cod sursa (job #2403156) | Cod sursa (job #680065) | Cod sursa (job #1529496)
#include <cstdio>
#include <deque>
#include <algorithm>
#define value first
#define position second
using namespace std;
deque <pair <int, int> > Deque; int N, K, X; long long S;
int main () {
freopen ("deque.in" ,"r", stdin );
freopen ("deque.out","w", stdout);
scanf ("%d %d", &N, &K);
for (int i = 1; i <= N; i ++) {
scanf ("%d", &X);
while (!Deque.empty() && X <= Deque.back().value)
Deque.pop_back();
Deque.push_back(make_pair(X, i));
if (Deque.front().position == i - K)
Deque.pop_front();
if (i >= K)
S += Deque.front().value;
}
printf ("%lld\n", S);
return 0;
}