题库练习 Array GCD
← 上一题 下一题 →

A10221 | Array GCD

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

You are given array $a_{i}$ of length $n$ . You may consecutively apply two operations to this array:

- remove some subsegment (continuous subsequence) of length $m<n$ and pay for it $m·a$ coins;
- change some elements of the array by at most $1$ , and pay $b$ coins for each change.

Please note that each of operations may be applied at most once (and may be not applied at all) so you can remove only one segment and each number may be changed (increased or decreased) by at most $1$ . Also note, that you are not allowed to delete the whole array.

Your goal is to calculate the minimum number of coins that you need to spend in order to make the greatest common divisor of the elements of the resulting array be greater than $1$ .

输入格式

The first line of the input contains integers $n$ , $a$ and $b$ ( $1<=n<=1000000,0<=a,b<=10^{9}$ ) — the length of the array, the cost of removing a single element in the first operation and the cost of changing an element, respectively.

The second line contains $n$ integers $a_{i}$ ( $2<=a_{i}<=10^{9}$ ) — elements of the array.

输出格式

Print a single number — the minimum cost of changes needed to obtain an array, such that the greatest common divisor of all its elements is greater than $1$ .

输入输出样例

输入 #1
3 1 4
4 2 3
输出 #1
1
输入 #2
5 3 2
5 17 13 5 6
输出 #2
8
输入 #3
8 3 4
3 7 5 4 3 12 9 4
输出 #3
13
C++ 编辑器
输入
输出