using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Numerics;
using System.Diagnostics;

class Program
{
    static long GetDistance(int city1, int city2, int[] city, long d)
    {
        if(city1 == city2)
            return long.MaxValue;
        return Math.Abs(city1 - city2) * d + city[city1] + city[city2];
    }
    public void Slove()
    {
        string[] inputs = Console.ReadLine().Split();
        int n = int.Parse(inputs[0]);
        long d = int.Parse(inputs[1]);
        int[] city = 
            Console.ReadLine().Split()
            .Select(int.Parse).ToArray();
        //long[][] distance =
        //    Enumerable.Range(0, n)
        //    .Select(x => new long[n])
        //    .ToArray();
        //foreach(int i in Enumerable.Range(0, n))
        //{
        //    distance[i][i] = long.MaxValue;
        //    foreach(int j in Enumerable.Range(0, n).Skip(i + 1))
        //    {
        //        distance[i][j] = (j - i) * d + city[i] + city[j];
        //        distance[j][i] = distance[i][j];
        //    }
        //}
        bool[] conect = new bool[n];
        conect[0] = true; 
        long cost = 0;
        long[] dp = 
            Enumerable.Range(0, n)
            .Select(x => GetDistance(0, x, city, d)).ToArray();
        foreach(int j in Enumerable.Range(0, n - 1))
        {
            int next = 
                Enumerable.Range(0, n) 
                .Where(x => !conect[x])
                .Aggregate(0, (ret, index) => 
                    dp[index] > dp[ret] ? ret : index);
            //Console.WriteLine(next);
            //Console.WriteLine(string.Join(",", dp));
            cost += dp[next];
            //Console.WriteLine(next);
            conect[next] = true;
            foreach(int i in Enumerable.Range(0, n)
                .Where(x => !conect[x]))
            {
                dp[i] = Math.Min(dp[i], GetDistance(next, i, city, d));
            }
        }
        Console.WriteLine(cost);
    }
    static void Main(string[] args)
    {
        var p = new Program();
        p.Slove();
    }
}
