小红的乘2除2
题号:NC275312
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红拿到了一个数组。她需要进行恰好一次以下操作:
先使得一个元素除以2,向下取整。然后使得一个元素乘以2。
小红希望操作后,数组的陡峭值尽可能小。你能帮帮她吗?
定义数组的陡峭值为:相邻两数之差的绝对值之和。例如,[2,3,1]的陡峭值为|2-3|+|3-1|=3。

输入描述:

第一行输入一个正整数n,代表数组大小。
第二行输入n个正整数a_i,代表小红拿到的数组。
2 \leq n \leq 10^5
1 \leq a_i \leq 10^9

输出描述:

一个整数,代表最终数组的陡峭值的最小值。
示例1

输入

复制
3
2 3 2

输出

复制
0

说明

先对第二个元素除以2,然后对第二个元素乘以2即可。
示例2

输入

复制
4
1 2 3 4

输出

复制
2

说明

先对第四个元素除以2,然后对第一个元素乘以2。