Pagini recente » Istoria paginii runda/lasm_21_02_2025_clasa11/clasament | Istoria paginii runda/testround13/clasament | Istoria paginii runda/ojik/clasament | Monitorul de evaluare | Cod sursa (job #544043)
Cod sursa(job #544043)
# include <stdio.h>
using namespace std;
int a[5000001], deque[5000001];
int main () {
int n, k, i, front = 1, back = 0;
long long sum = 0;
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]);
for (i = 1; i <= n; ++i) {
while (front <= back && a [ i ] <= a [ deque [ back ]]) -- back;
deque [ ++ back ] = i;
if (deque [ front ] == i - k) ++ front;
if (i >= k) sum += a [ deque [ front ]];
}
printf ("%lld\n", sum);
return 0;
}