Pagini recente » Cod sursa (job #2724631) | Cod sursa (job #691219) | Cod sursa (job #2627375) | Cod sursa (job #2325228) | Cod sursa (job #2815381)
#include <bits/stdc++.h>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
int n, k;
int a[100001];
int log2[100001];
int v[100001][25], l;
int main(){
cin >> n >> k;
for(int i = 1; i <= n; ++i){
cin >> a[i];
}
log2[1] = 0;
for(int i = 2; i <= n; i++)
log2[i] = log2[i >> 1] + 1;
int len = log2[n];
for(int i = 1; i <= n; ++i){
v[i][0] = a[i];
}
for(int i = 1; i <= len; i++)
{
int sf = n - (1 << i) + 1;
l = 1 << (i - 1);
for(int j = 1;j <= sf; j++)
v[j][i] = min(v[j][i - 1], v[j + l][i - 1]);
}
int st, dr, ans = 0;
for(int i = 1; dr < n; ++i){
st = i;
dr = i + k - 1;
int l = log2[dr - st + 1];
ans += min(v[st][l], v[dr - (1 << l) + 1][l]);
}
cout << ans;
return 0;
}
///l=log2[dr-st+1];
///fout << min(v[st][l],v[dr-(1<<l)+1][l]) << '\n';