编程题
斐波那契数组
### 问题描述
如果数组 $A=\left(a_{0}, a_{1}, \cdots, a_{n-1}\right)$ 满足以下条件, 就说它是一个斐波那契数 组:
1. $n \geq 2$;
2. $a_{0}=a_{1}$
3. 对于所有的 $i(i \geq 2)$, 都满足 $a_{i}=a_{i-1}+a_{i-2}$ 。
现在, 给出一个数组 $A$, 你可以执行任意次修改, 每次修改将数组中的某 个位置的元素修改为一个大于 0 的整数。请问最少修改几个元素之后, 数组 $A$ 会变成一个斐波那契数组。
### 输入格式
输入的第一行包含一个整数 $n$, 表示数组 $A$ 中的元素个数。
第二行包含 $n$ 个整数 $a_{0}, a_{1}, \cdots, a_{n-1}$, 相邻两个整数之间用一个空格分隔。
### 输出格式
输出一行包含一个整数表示最少需要修改数组 $A$ 中的几个元素之后, 数组 $A$ 可以变为一个斐波那契数组。
### 样例输入
```text
5
1 2 2 4 8
```
### 样例输出
```text
3
```
### 样例说明
将原数组修改为 $(1,1,2,3,5)$, 最少修改三个元素变成了一个斐波那契数组。
### 评测用例规模与约定
对于所有评测用例, $2 \leq n \leq 10^{5}, 1 \leq a_{i} \leq 10^{6}$ 。