fss

提交数: 59, 通过率: 11.86%, 平均分: 41.02

题目描述:

给出一个整数序列A1..AN,对于任意的i>=3,如果有Ai=Ai-1+Ai-2,则称序列A为一个Fibnacci序列.

对于一个序列Ab1..Abk,如果有1<=b1<bi<bk<=N,则称之为序列A的一个子串.

求出A最长的Fibonacci子串.

输入格式:

第一行一个整数N

第二行N个整数分别表示A1..An

输出格式:

第一行一个数Len表示最长的子序列长度

第二行输出Len个数,表示对应的子序列.(如果有多个子序列长度都为Len,则输出下标字典序最小的那个)

样例输入:

8
1 2 3 6 10 9 14 1000

样例输出:

3
1 2 3

提示:

【样例解释】

你可以找到多个长度为3 的FIB子序列

例如(1,2,3),(3,6,9)这些答案中第一个,即(1,2,3),它的元素下标序列的字典序最小

 

【数据规模和约定】

30%的数据N<=200

60%的数据N<=1000

100%的数据N<=3000

Ai的绝对值均小于等于10^9

时间限制: 1000ms
空间限制: 256MB