斐波那契数列定义为 $0, 1, 1, 2, 3, 5, 8, 13, 21, \dots$ ——其中每个数(前两个数除外)都是前两个数之和。
给定 $N$ 个数 $a_i$,请统计满足 $i < j$ 且 $a_i + a_j$ 为斐波那契数的数对个数。
输入格式
第一行包含一个整数 $N$ ($1 \le N \le 200\,000$)。
接下来 $N$ 行,每行包含一个整数 $a_i$ ($1 \le a_i < 10^{2\,000\,000}$)。这些数字的总位数不超过 $5\,000\,000$。
输出格式
输出一个整数,表示和为斐波那契数的数对个数。
样例
样例输入 1
6 50 8 8 5 72 354224848179261915070
样例输出 1
4
说明
共有 4 对满足条件的数对:
- $a_2 + a_4 = 8 + 5 = 13$
- $a_3 + a_4 = 8 + 5 = 13$
- $a_1 + a_4 = 50 + 5 = 55$
- $a_4 + a_6 = 5 + 354224848179261915070 = 354224848179261915075$