#C07L02P06. C07.L02.组合数学之加法与乘法原理.编程题4.三角形个数(DLOI2019)

C07.L02.组合数学之加法与乘法原理.编程题4.三角形个数(DLOI2019)

题目描述

有一个包含 N 个元素的数组 L[1,N]。 选择数组的 3 个不同下标: i , j , k, 满足 i < j <k, 就构成下标对( i , j , k )。

如果下标对( i , j , k ) 满足以下所有条件, 那么该下标对就是“ 优质对” :

  1. 令 A = L[i] + L[j]
  2. 令 B = L[j] + L[k]
  3. 令 C = L[k] + L[i]
  4. 如果 A、 B、 C 都是非负数, 而且以 A、 B、 C 作为三条边, 能构成三角形。

你的任务是: 给出 L 数组[1,N], 可以有多少个不同的“ 优质对” ?

输入格式
第一行, 一个整数 N。 1 <= N <= 200000。

接下来有 N 行, 第 i 行是一个整数 L[i]。 -1000000000 <= L[i] <= 1000000000

输出格式

样例

3
-2 -3 -5
0
4
1 4 6 -45
1