Олимпиадный тренинг

Задача . B. Отрезок Фибоначчи


Задача

Темы: реализация *1100

Дан массив a1, a2, ..., an. Отрезок [l, r] (1 ≤ l ≤ r ≤ n) называется хорошим, если ai = ai - 1 + ai - 2, для всех i (l + 2 ≤ i ≤ r).

Определим функцию len([l, r]) = r - l + 1, len([l, r]) называется длиной отрезка [l, r]. Отрезок [l1, r1], длиннее отрезка [l2, r2], если len([l1, r1]) > len([l2, r2]).

Требуется найти в массиве a хороший отрезок наибольшей длины. Заметьте, что отрезок, длины 1 или 2 всегда хороший.

Входные данные

В первой строке записано единственное целое число n (1 ≤ n ≤ 105) — количество элементов в массиве. Во второй строке записаны целые числа: a1, a2, ..., an (0 ≤ ai ≤ 109).

Выходные данные

Выведите длину самого длинного хорошего отрезка в массиве a.


Примеры
Входные данныеВыходные данные
1 10
1 2 3 5 8 13 21 34 55 89
10
2 5
1 1 1 1 1
2

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя