Pagini recente » Cod sursa (job #2520678) | Cod sursa (job #100414) | Cod sursa (job #673644) | Cod sursa (job #1499980) | Cod sursa (job #811385)
Cod sursa(job #811385)
#include <cstdio>
#include <algorithm>
using namespace std;
#define NMAX 5000010
int N, K;
int value[NMAX];
int deque[NMAX];
void read_data () {
scanf ("%d %d", &N, &K);
for (int i = 0; i < N; i++)
scanf ("%d", &value[i]);
}
void solve () {
long long sum = 0;
int left = 0, right = -1;
for (int i = 0; i < N; i++) {
while (left <= right && deque[left] < i - K + 1) left++;
while (left <= right && value[ deque[right] ] > value[i]) right--;
deque[++right] = i;
if (i >= K - 1)
sum+= (long long) value[ deque[left] ];
}
printf ("%lld\n", sum);
}
int main () {
freopen ("deque.in", "r", stdin);
freopen ("deque.out", "w", stdout);
read_data ();
solve ();
return 0;
}