#BSRCH09. 能组成多少个三角形

能组成多少个三角形

题目描述

有 nn 根木棒,第 ii 根长度为正整数 aia_i,不保证有序。从中选择三根不同的木棒,统计能组成非退化三角形的方案数。

非退化三角形要求任意两边之和严格大于第三边,两边之和等于第三边时不合法。

每根木棒有自己的编号,相同长度的不同木棒仍分别计数。三根木棒交换选择顺序不会产生新方案。

输入格式

第一行包含一个整数 nn,表示木棒数量。

第二行包含 nn 个正整数,表示各根木棒的长度。

输出格式

输出一个整数,表示合法的无序三根木棒选择方案数。

4
2 3 4 5
3
3
1 1 2
0

样例 1 解释

长度组合 (2,3,4)、(2,4,5)、(3,4,5) 可以组成三角形;(2,3,5) 因为 2+3=5,不合法。

样例 2 解释

唯一的三根木棒满足 1+1=2,属于退化情况,不能组成题目要求的三角形。

数据范围与提示

对于所有数据,3≤n≤10003\le n\le1000,1≤ai≤10121\le a_i\le10^{12}。

共 2020 个测试点,每个测试点 55 分,按测试点独立计分,总分 100100 分。

测试点 规模限制
1—5 n≤8n\le 8
6—10 n≤50n\le 50
11—15 n≤300n\le 300
16—20 n≤1000n\le 1000

表中的规模限制只限制对应参数的上界,所有测试点同时满足上述完整数据范围。

时间限制:2 秒。内存限制:128 MiB。