#include #include #include #include #include using namespace std; #define INF (1LL << 60) long long cost[10005]; int N,k; bool TotalCost(int start,long long &res) { int reach = start + k; int leftOver = 0; res = 0; res += cost[start]; while(reach < N-1) { leftOver = (N - 1) - reach; if( leftOver <= k) { return false; } else { if(leftOver > 2 * k + 1) { reach += 2 * k + 1; res += cost[reach - k]; } else { reach += k+1; res += cost[reach]; break; } } } return true; } long long solve() { int upperBound = min(k,N-1); long long minCost = INF; long long res = 0; for(int i = 0; i <= upperBound; ++i) { if(TotalCost(i,res)) { minCost = min(minCost,res); } } return minCost; } int main() { /* Enter your code here. Read input from STDIN. Print output to STDOUT */ cin >> N >> k; for(int i = 0; i < N; i++) { cin >> cost[i]; } cout << solve() << endl; return 0; }