#2687. Sam的斐波那契序列

Sam的斐波那契序列

题目描述

Sam 最近复习了 《斐波那契数列》,斐波那契数列就是 1,1,2,3,5,8...1,1,2,3,5,8... 这个序列,对于 i>2i > 2 时满足 fi=fi1+fi2f_i = f_{i-1}+f_{i-2}

现在 Sam 思考了一下,能否将斐波那契数列拓展一下呢?

于是他定义了一个 斐波那契序列:是指一个长度 2\ge 2 的序列 AA,满足 Ai=Ai1+Ai2(i>2)A_i=A_{i-1}+A_{i-2}(i > 2)

现在 Sam 给出一个长度为 nn 的原序列 BB,第 ii 个数字为 BiB_i

他希望找出这个 BB 序列中找出一个子序列 CC,使得这个子序列 CC 是一个斐波那契序列。

请你找出最长的子序列 CC,并将它输出。

输入格式

输入第一行包含一个整数 nn 表示原序列 BB 的长度。

输入第二行包含 nn 个整数,表示原序列 BB

输出格式

输出第一行包含一个整数,表示求出子序列 CC 的最大长度。

输出第二行包含 nn 个整数,表示序列 CC(如果有多个满足的序列 CC,请输出字典序最小的)。

输入输出样例 #1

输入 #1

7
1 1 2 3 8 5 8

输出 #1

6
1 1 2 3 5 8

输入输出样例 #2

输入 #2

10
2 -1 0 3 -1 -1 5 8 13 -2

输出 #2

5
-1 0 -1 -1 -2

说明/提示

数据范围

对于 20%20\% 的数据满足: 2n1002 \leq n \leq 100

对于另外 10%10\% 的数据满足: 2n3000,10Bi102 \leq n \leq 3000, -10 \leq B_i \leq 10

对于另外 40%40\% 的数据满足: 2n3000,100Bi1002 \leq n \leq 3000, -100 \leq B_i \leq 100

对于 100%100\% 的数据满足: 2n3000,109Bi1092 \leq n \leq 3000, -10^9 \leq B_i \leq 10^9

样例解释2

有两个斐波那契序列:-1 0 -1 -1 -22 3 5 8 13,但是前者的字典序更小。