N,K,X = map(int,input().split()) A = list(map(int,input().split())) inf = 10 ** 18 dp = [[inf] * 2 for _ in range(N + 1)] dp[0][0] = 0 for i in range(N): a = A[i] if dp[i][1] != inf: dp[i + 1][1] = min(dp[i + 1][1],dp[i][1] + K) dp[i + 1][0] = min(dp[i + 1][0],dp[i][1] + a) dp[i + 1][1] = min(dp[i + 1][1],dp[i][0] + K + X) dp[i + 1][0] = min(dp[i + 1][0],dp[i][0] + a) print(min(dp[-1]))