#include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef unsigned u; typedef vector vi; typedef pair pii; #define F first; #define S second; #define PB push_back; #define MP make_pair; bool EQ(double a, double b) { return (fabs(a-b) / (a+b) < DBL_EPSILON); } vector points ; ll closest ( ll a) { ll idx = 0; ll dist = 999999; for ( ll i = 0 ; i < points.size() ; ++ i ) { if( abs(points[i] - a) < dist) { dist = a - points[i]; idx= i; } } return idx; } void print() { for ( auto & it : points ) cout << it << " "; cout << endl; } ll calcDist ( ll arr, ll dist , ll idx) { ll sum = 0; for ( ll i = 0 ; i < points.size() ; ++ i ) { int val = abs(points[i] - arr + (idx - i) * dist); //cout << val << endl; // chyba sum += val; } return sum; } ll sumMm () { ll sum = 0 ; for ( auto & it : points ) sum += it ; return sum; } int main( ) { ios_base::sync_with_stdio(0); cin.tie(0); // code ll n , dist ; cin >> n >> dist ; for ( int i = 0 ; i < n ; ++ i ) { ll tmp ; cin >> tmp ; points.push_back( tmp ); } sort(points.begin(), points.end()); //print(); //ll s = sumMm() ; //ll arr = round(double ( s ) / points.size()) ; //can ffail //ll closestI = closest(arr); ll closestI = n/2; //cout << "clos" << closestI << endl; ll arr = points[closestI]; //cout << "val" << arr << endl; cout << calcDist(arr, dist, closestI) << endl; return 0; }