#P1971. Array GCD

Array GCD

题目描述

对于给定的序列 {vn}\{v_n\},可以进行以下操作:

  • 选定 [l,r][l,r],删除 vlv_lvrv_r,只能进行一次,且需要保证 rl+1<nr−l+1<n,操作的代价为 a×(rl+1)a×(r−l+1)
  • 选定 xx,将 vxv_x 变为 vx+1v_x+1vx1v_x-1,对于每个 xx 只能进行一次,操作的代价为 bb

求使得 gcd(vi)>1\gcd(v_i)>1 的最小代价。

输入格式

第一行三个整数 n,a,bn,a,bn106n\le 10^60a,b1090\le a,b\le 10^9

第二行 nn 个整数 viv_i2vi1092\le v_i\le 10^9

输出格式

输出一个整数表示答案。

3 1 4
4 2 3
1
5 3 2
5 17 13 5 6
8
8 3 4
3 7 5 4 3 12 9 4
13