Pagini recente » Cod sursa (job #2077876) | Cod sursa (job #859639) | Cod sursa (job #2216883) | Cod sursa (job #1200539) | Cod sursa (job #2009914)
#include <cstdio>
using namespace std;
const int NMAX = 5000005;
int v[NMAX], d[NMAX];
int main()
{
int n, k, i;
long long int 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", &v[i]);
}
int fata = 1, spate = 0;
for(i = 1;i <= n; ++i) {
while(fata <= spate && v[i] <= v[d[spate]]) {
--spate;
}
d[++spate]=i;
if(d[fata] == i-k) {
++fata;
}
if(i >= k) {
sum += v[d[fata]];
}
}
printf("%lld\n", sum);
return 0;
}