Pagini recente » Cod sursa (job #2472295) | Cod sursa (job #316417) | Cod sursa (job #2661337) | Cod sursa (job #58896) | Cod sursa (job #249386)
Cod sursa(job #249386)
#include <cstdio>
#define ll long long
int N, K;
int Dq[500005], V[500005];
int main () {
freopen ("deque.in", "r", stdin);
freopen ("deque.out", "w", stdout);
ll ans = 0;
scanf ("%d %d", &N, &K);
for (int i = 1; i <= N; ++ i) scanf (" %d", V + i);
for (int st = 1, dr = 0, i = 1; i <= N; ++ i) {
while (st <= dr && V[Dq[dr]] > V[i]) -- dr;
Dq[++dr] = i;
//while (st <= dr && i - Dq[st] >= K) ++ st;
if (i - Dq[st] == K) ++ st;
if (i >= K) ans += (ll)V[Dq[st]];
}
printf ("%lld\n", ans);
return 0;
}