# パラメータ入力
N, D = map(int,input().split())
A = list(map(int,input().split()))

# 各都市間のコストを求める
def cost(A, i, j):
    return (abs(i-j) * D) + A[i - 1] + A[j - 1]

cost_list = []
a_sum = len(A)
i = a_sum
j = 1
while i > 0:
    while j < i:
        cost_list.append([cost(A, i, j), i, j])
        j += 1
    j = 1
    i -= 1

# 各都市間のコストを低い順にソートする
cost_list.sort()

# 小さい順からN-1個の分の総和を求める
# その際最低1つ以上の新規国を繋ぐ必要がある
connectd_country = {}
min_cost_sum = 0
count = 0
unused_road_list = []
used_road_list = []

# 同じ国リスト間をループする場合は、カウントしない
# 繋いだ国があれば、その国クリストに繋ぐ
# 繋いだ国がなければ、新規に国リストを作る
# 国リスト間を跨ぐ場合は、国リストをマージする
group_map = {}
currnt_group_index = 1
def add_group(country_num_1, country_num_2):
    if (country_num_1 in group_map) == False and (country_num_2 in group_map) == False:
        global currnt_group_index
        group_map[country_num_1] = currnt_group_index
        group_map[country_num_2] = currnt_group_index
        currnt_group_index += 1
    elif (country_num_1 in group_map) == True and (country_num_2 in group_map) == False:
        group_map[country_num_2] = group_map[country_num_1]
    elif (country_num_1 in group_map) == False and (country_num_2 in group_map) == True:
        group_map[country_num_1] = group_map[country_num_2]
    else:
        if group_map[country_num_1] != group_map[country_num_2]:
            for key in group_map:
                if group_map[key] == group_map[country_num_2]:
                    group_map[key] = group_map[country_num_1]

def can_construct(country_num_1, country_num_2):
    if (country_num_1 in group_map) == False:
        return True
    if (country_num_2 in group_map) == False:
        return True
    if group_map[country_num_1] != group_map[country_num_2]:
        return True
    return False

for road in cost_list:
    contry_1 = road[1]
    contry_2 = road[2]
    if can_construct(contry_1, contry_2) == False:
        continue
    add_group(contry_1, contry_2)
    min_cost_sum += road[0]
    used_road_list.append(road)
    count += 1
    if count == a_sum - 1:
        break

print(min_cost_sum)
