#lg3543. [POI 2012] WYR-Leveling Ground找平地面

    ID: 4465 传统题 1000ms 64MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>贪心扩展欧几里德算法反悔贪心NOI/NOI+/CTS

[POI 2012] WYR-Leveling Ground找平地面

[AdditionalFile2701.zip](file://AdditionalFile2701.zip?type=additional_file)

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

标签: 传统 | 时间限制: 1000 ms | 内存限制: 64 MiB |

题目描述

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

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

输入格式

第一行三个整数 n,a,b(1≤n≤100 000,1≤a,b≤109)n, a, b (1 \le n \le 100\ 000, 1 \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

一种操作方案是:

  • 将前两个数加 22;
  • 将前两个数减 33;
  • 将后四个数加 22;
  • 将最后一个数加 22;
  • 将后四个数减 33。

数据范围与提示

对于 30%30\% 的数据,n,a,b≤200,−200≤h1,h2,…,hn≤200n,a,b \le 200,-200 \le h_1,h_2,\ldots,h_n \le 200.

对于 60%60\% 的数据,$n,a,b \le 2000,-2000 \le h_1,h_2,\ldots,h_n \le 2000$.

对于 90%90\% 的数据,a,b≤106a,b \le 10^6.

对于所有数据,1≤n≤100 000,1≤a,b≤1091 \le n \le 100\ 000, 1 \le a,b \le 10^9.