Kevin的“非负共鸣”统计
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
Kevin 是《元素秘境》游戏的首席设计师。游戏中,每位玩家需要从 火、水、风、地 四种元素中各挑选一张卡牌,如果四张卡牌上的数字之和恰好为 0,就能触发隐藏的“世界共鸣”效果,获得稀有奖励。
为了设计成就系统,Kevin 需要预先知道一共有多少种不同的选法可以触发共鸣。他拿到了四个长度为 n 的整数数组,分别代表四种元素的卡牌数值。看着n=1000 的数据,Kevin 知道用最简单的四层循环来枚举所有组合肯定会超时——服务器可承受不了 次运算。他必须在几天内找到一个更聪明的计数方法,否则游戏上线就会延迟。
夜深了,Kevin 对着屏幕上的四列数字出神,心想:“这组方程一定有某种对称性可以帮我减少枚举次数……” 最终,他设计了一个高效的枚举优化方案,成功在数秒内算出了所有共鸣组合的数量。现在,请你扮演 Kevin,用你的算法知识来解决这个统计问题。
具体来说,给定一个长度为 n 的整数数组 请计算有多少个四元组 (i,j,k,l)(其中 i,j,k,l 各自独立地从 1 到 n 取值)满足:A[i]+A[j]+A[k]+A[l]=0
注意:下标可以重复使用(即同一个位置的元素可在相同数组中分别被选)。
输入格式
输入
第一行:一个整数 n,表示每个数组的长度。
第二行:n 个整数,表示数组 A。
所有数值均为整数,可能为负数。
输出
输出一个整数,表示满足条件的四元组总数。
样例
3
1 -1 0
19
数据范围
1 n 1000,