题目背景
上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来。
题目描述
有 nn根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法?
答案对 10^9+7 取模。
输入格式
第一行一个整数 nn。
第二行 nn 个整数,第 i 个整数 ai 代表第 i 根木棒的长度。
输出格式
一行一个整数代表答案。
输入输出样例
输入
4
1 1 2 2
输出
1
说明/提示
数据规模与约定
- 对于 30% 的数据,保证 n≤5×10^3。
- 对于 100% 的数据,保证 1≤n≤10^5,0≤ai≤5×10^3。
解题思路
首先,我们分析题意,可知要选择四根木棍组成正三角形,可知一定有两根木根作为完整的一条边且长度相等。另外,有两根木棍通过合并组成另一条边。这里我们假设三角形的边长为i,那么有两条长度为i的边,那么另两条较短的木棍长度为j和i-j。
我们先用一个num[]数组存储所有的木棍的数量,同时利用max和min记录所有木棍中最长和最短的木棍。
然后通过i从min+1到max遍历所有木棍(不用从min开始,因为j要更小些),然后j从min到i/2遍历。其中注意,如果num[i]<2那么就无需