#L2701. 「POI2012 R3」找平地面 Leveling Ground

「POI2012 R3」找平地面 Leveling Ground

题目描述

译自 POI 2012 Stage 3. Day 1「Leveling Ground」

给定一个长度为 nn 的数组,每次操作可以将一个连续区间的数增加或减少 aa,或将一个连续区间的数增加或减少 bb
求使整个数组变为 00 的最小操作次数。若无解请输出 1-1


输入格式

第一行三个整数 n,a,bn, a, b1n1000001 \le n \le 100\,000, 1a,b1091 \le a,b \le 10^9)。

接下来一行 nn 个整数 h1,h2,,hnh_1, h_2, \ldots, h_n,绝对值均不超过 10910^9


输出格式

输出一行一个整数,表示最小操作次数。


样例

输入

5 2 3
1 2 1 1 -1

输出

5

一种操作方案是:

  1. 将前两个数加 22
  2. 将前两个数减 33
  3. 将后四个数加 22
  4. 将最后一个数加 22
  5. 将后四个数减 33

数据范围与提示

  • 对于 30%30\% 的数据,n,a,b200n,a,b \le 200200hi200-200 \le h_i \le 200
  • 对于 60%60\% 的数据,n,a,b2000n,a,b \le 20002000hi2000-2000 \le h_i \le 2000
  • 对于 90%90\% 的数据,a,b106a,b \le 10^6
  • 对于所有数据,1n1000001 \le n \le 100\,0001a,b1091 \le a,b \le 10^9