给定一个存有非负整数的格子序列A,猫咪可以站在A的任意一个位置开始跳跃。这个格子序列,我们称为“ 跳跃数组A”。
猫咪能够按照如下规则跳跃,直到所有的格子都跳过或者不再满足跳跃条件。
跳跃条件如下:猫咪只能从当前位置开始向前或向后跳跃至下一个位置 (可能是后面的任意个位置)。但是,当猫咪跳跃到下一个位置时,跳跃之前的数和跳到的数之和必须是一个完全平方数。
请你计算猫咪能够跳跃的所有不同的跳跃方案的数量。
如果两个跳跃序列完全相同,则视为同一个序列。
第一行包含一个整数 n,表示数组 A 的长度。
第二行包含n个整数 A_i,表示数组 A 的各个元素。
一个整数,表示猫咪能够跳完所有格子的不同的方案数量。
3 1 3 6
2
3 2 2 2
1
【数据范围】
{1 \le n \le 12} , {0 \le A_i \le 10^9} 。