#include #include #include using namespace std; int main() { int N, K, val, meters = 0; vector vec, original_vec; cin >> N >> K; for(int i = 0; i < N; i++) { cin >> val; vec.push_back(val); } sort(vec.begin(), vec.end()); original_vec = vec; if(N == 1) meters = 0; else if(N == 2) meters = abs(vec[1] - (vec[0] + K)); else { size_t first, second; if(vec.size() % 2 == 0) { first = vec.size() / 2 - 1; second = first + 1; meters = abs(vec[second] - (vec[first] + K)); vec[second] = vec[first] + K; } else if(vec.size() % 2 == 1) { first = vec.size() / 2; second = first; } for(first--, second++; second < vec.size() && first >= 0; first--, second++) { meters += abs(vec[first] - (vec[first + 1] - K)); vec[first] = vec[first + 1] - K; meters += abs(vec[second] - (vec[second - 1] + K)); vec[second] = vec[second - 1] + K; } } cout << meters << endl; return 0; }