Pagini recente » Cod sursa (job #1476424) | Cod sursa (job #78780) | Cod sursa (job #2802527) | Cod sursa (job #882930) | Cod sursa (job #1758865)
#include <cstdio>
#include <deque>
using namespace std;
struct ABC{
int val, poz;
};
deque<ABC>d;
int main(){
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int n, k, i, x;
long long s = 0;
ABC aux;
scanf("%d%d", &n, &k);
for (i = 1; i <= k; i ++){
scanf("%d", &x);
while (!d.empty() && d.back().val >= x)
d.pop_back();
aux.val = x;
aux.poz = i;
d.push_back(aux);
}
s = d.front().val;
for (i = k + 1; i <= n; i ++){
scanf("%d", &x);
while (!d.empty() && d.back().val >= x)
d.pop_back();
aux.val = x;
aux.poz = i;
d.push_back(aux);
if (d.front().poz == i - k)
d.pop_front();
s += d.front().val;
}
printf("%lld\n", s);
return 0;
}