2800 - [Poi2012]Leveling Ground

Description 给出n个整数X_1,X_2,...X_n,再给出两个正整数a、b,可以进行下面四种操作:

  1. 选择正整数l,r (1<=l<=r<=n),将Xl,X{l+1},...,X_r都加上a。
  2. 选择正整数l,r (1<=l<=r<=n),将Xl,X{l+1},...,X_r都减去a。
  3. 选择正整数l,r (1<=l<=r<=n),将Xl,X{l+1},...,X_r都加上b。
  4. 选择正整数l,r (1<=l<=r<=n),将Xl,X{l+1},...,X_r都减去b。 求最少的操作次数将{X_i}全部变成0

Input

第一行三个正整数n,a,b (n<=100,000, a,b<=10^9)。 第二行n个整数,依次表示X_1,X_2,...X_n (|X_i|<=10^9)。

Output

一个正整数,表示最少的操作次数。如果不存在方案,输出-1。

Examples

Input

5 2 3
1 2 1 1 -1

Output

5

Hint

进行下面五次操作将{X_i}全部变成0:

  1. 将X_1,X_2都加上2,变成3 4 1 1 -1。

  2. 将X_1,X_2都减去3,变成0 1 1 1 -1。

  3. 将X_2,X_3,X_4,X_5都加上2,变成0 3 3 3 1。

  4. 将x_5加上2,变成0 3 3 3 3。

  5. 将x_2,x_3,x_4,x_5都减去3,变成0 0 0 0 0。

Time Limit 1 second
Memory Limit 128 MB
Stats
上一题 下一题