[Poi2012]Leveling Ground
给出 n 个整数 X1,X2,…,Xn,以及两个正整数 a、b。可以进行以下四种操作:
- 选择正整数 l,r,满足 1≤l≤r≤n,将 Xl,Xl+1,…,Xr 都加上 a。
- 选择正整数 l,r,满足 1≤l≤r≤n,将 Xl,Xl+1,…,Xr 都减去 a。
- 选择正整数 l,r,满足 1≤l≤r≤n,将 Xl,Xl+1,…,Xr 都加上 b。
- 选择正整数 l,r,满足 1≤l≤r≤n,将 Xl,Xl+1,…,Xr 都减去 b。
求将所有 Xi 都变为 0 所需的最少操作次数。如果不存在可行方案,输出 −1。
时间限制:10000 ms。
内存限制:65536 KB。
输入格式
第一行包含三个正整数 n,a,b,满足 n≤105 且 a,b≤109。
第二行包含 n 个整数,依次表示 X1,X2,…,Xn,满足 ∣Xi∣≤109。
输出格式
输出一个整数,表示将所有 Xi 都变为 0 所需的最少操作次数。如果不存在可行方案,输出 −1。
样例输入
5 2 3
1 2 1 1 -1
样例输出
5
样例解释
可以进行以下 5 次操作将所有 Xi 都变为 0:
- 将 X1,X2 都加上 2,数组变为 3,4,1,1,−1。
- 将 X1,X2 都减去 3,数组变为 0,1,1,1,−1。
- 将 X2,X3,X4,X5 都加上 2,数组变为 0,3,3,3,1。
- 将 X5 加上 2,数组变为 0,3,3,3,3。
- 将 X2,X3,X4,X5 都减去 3,数组变为 0,0,0,0,0。
数据范围
- n、a、b 为正整数,且 n≤105、a,b≤109。
- 对于所有 i,均有 ∣Xi∣≤109。
来源与许可
本题为 POI 2012 试题「Leveling Ground」,题面与测试数据整理自 BZOJ 2800。
样例 1
输入
5 2 3
1 2 1 1 -1
输出
5