from typing import List, Tuple, Callable, TypeVar, Optional import sys import itertools import heapq import bisect import math from collections import deque, defaultdict from functools import lru_cache, cmp_to_key input = sys.stdin.readline if __file__ != 'prog.py': sys.setrecursionlimit(10 ** 6) def readints(): return map(int, input().split()) def readlist(): return list(readints()) def readstr(): return input()[:-1] N, K, X = readints() A = readlist() INF = 1 << 50 dp = [0, INF] for i in range(N): ndp = [None, None] ndp[1] = min(dp[1] + K, dp[0] + K + X) ndp[0] = min(dp[1] + A[i], dp[0] + A[i]) dp = ndp print(min(dp))