let split_string ?(pattern="") = Str.split @@ Str.regexp pattern
let (n, a, b) = Scanf.sscanf (read_line ()) "%d %d %d" @@ fun n a b -> (n, a, b)
let xs = read_line () |> split_string ~pattern:" " |> List.map int_of_string |> Array.of_list

let xs = Array.init (n - 1) @@ fun i -> xs.(i + 1) - xs.(i)

let () = Printf.printf "%d\n" @@ Array.fold_left (fun sum i -> sum + (min (i * a) b)) 0 xs