“判题机又卡住了!”小蓝眉头紧锁,盯着屏幕上的评测错误日志。
经过深入排查,他发现评测系统的校验逻辑存在一个隐蔽的漏洞:当系统 先后读入两个参数x和y时,如果这两个数字的组合满足特定的算术性质,就 会导致内存溢出,进而触发异常中止。
具体来说,若先后出现的两个参数ai和aj(其中i< j)满足以下等式,系 统就会崩溃:
(ai + aj)2 = ai +aj
为了修复这个漏洞,小蓝导出了当前崩溃用例中的全部n个测试参数,按读入 顺序排列为a1,a2,...,an。现在,他需要你帮忙统计,这串参数中究竟存在多少 对下标组合(i, j),满足 1≤i< j≤n 且会触发上述异常。
第一行包含一个整数n,表示测试参数的总数。 第二行包含n个整数a1,a2,...,an,表示按顺序读入的参数值。
输出一个整数,表示能够触发异常的参数对数量。
4 -1 0 1 2
3
【评测用例规模与约定】
对于40%的评测用例,2≤n≤1000。
对于所有的评测用例,2≤n≤105,−109≤ai ≤109。