#include #include #include #include #include #include #include #include #include #include #define debug_value(x) cerr << "line" << __LINE__ << ":<" << __func__ << ">:" << #x << "=" << x << endl; #define debug(x) cerr << "line" << __LINE__ << ":<" << __func__ << ">:" << x << endl; template inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } using namespace std; typedef long long ll; const ll INF = 1e18; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout << setprecision(10) << fixed; int n, k; cin >> n >> k; vector a(n); vector cumsum_a(n+1); for(int i = 0; i < n; i++){ cin >> a[i]; cumsum_a[i+1] = cumsum_a[i]+a[i]; } // a[l]+...+a[r-1] auto range_sum = [&](int l, int r){ return cumsum_a[r]-cumsum_a[l]; }; ll ans = INF; int l = 0, r = k; for(int c = 0; c < n; c++){ while(r < n && a[c]-a[l] > a[r]-a[c]){ l++; r++; } ll tmp = -(a[c]*l-range_sum(0, l)); tmp -= range_sum(r, n)-a[c]*(n-r); tmp += a[c]*(c-l)-range_sum(l, c); tmp += range_sum(c, r)-a[c]*(r-c); chmin(ans, tmp); } cout << ans << endl; }