#LQ1348. 斐波那契数组

斐波那契数组

问题描述

如果数组 A=(a0,a1,,an1)A=(a_0, a_1, \cdots, a_{n-1}) 满足以下条件, 就说它是一个斐波那契数 组:

  1. n2n \geq 2;
  2. a0=a1a_0=a_1
  3. 对于所有的 i(i2)i(i \geq 2), 都满足 ai=ai1+ai2a_i=a_{i-1}+a_{i-2}

现在, 给出一个数组 AA, 你可以执行任意次修改, 每次修改将数组中的某 个位置的元素修改为一个大于 0 的整数。请问最少修改几个元素之后, 数组 AA 会变成一个斐波那契数组。

输入格式

输入的第一行包含一个整数 nn, 表示数组 AA 中的元素个数。

第二行包含 nn 个整数 a0,a1,,an1a_0, a_1, \cdots, a_{n-1}, 相邻两个整数之间用一个空格分隔。

输出格式

输出一行包含一个整数表示最少需要修改数组 AA 中的几个元素之后, 数组 AA 可以变为一个斐波那契数组。

5
1 2 2 4 8
3

样例说明

将原数组修改为 (1,1,2,3,5)(1,1,2,3,5), 最少修改三个元素变成了一个斐波那契数组。

评测用例规模与约定

对于所有评测用例, 2n105,1ai1062 \leq n \leq 10^5, 1 \leq a_i \leq 10^6