Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 400 点
問題文
高橋君は、互いに区別出来る N 本の棒を持っています。i 本目の棒の長さは L_i です。
高橋君は、これらのうち 3 本の棒を使って三角形を作ろうとしています。このとき、棒の長さを a, b, c として、以下の条件がすべて成り立たなければなりません。
- a < b + c
- b < c + a
- c < a + b
作れる三角形は何種類あるでしょうか。ただし、2 つの三角形は、そのうち一方にのみ使われている棒が存在するときに異なるとします。
制約
- 入力は全て整数
- 3 ≤ N ≤ 2 \times 10^3
- 1 \leq L_i \leq 10^3
入力
入力は以下の形式で標準入力から与えられる。
N L_1 L_2 ... L_N
出力
作れる三角形が何種類あるかを出力せよ。
入力例 1
4 3 4 2 1
出力例 1
1
作れる三角形は、1、2、3 番目の棒から成る三角形のみです。
入力例 2
3 1 1000 1
出力例 2
0
作れる三角形はありません。
入力例 3
7 218 786 704 233 645 728 389
出力例 3
23
Score : 400 points
Problem Statement
Takahashi has N sticks that are distinguishable from each other. The length of the i-th stick is L_i.
He is going to form a triangle using three of these sticks. Let a, b, and c be the lengths of the three sticks used. Here, all of the following conditions must be satisfied:
- a < b + c
- b < c + a
- c < a + b
How many different triangles can be formed? Two triangles are considered different when there is a stick used in only one of them.
Constraints
- All values in input are integers.
- 3 \leq N \leq 2 \times 10^3
- 1 \leq L_i \leq 10^3
Input
Input is given from Standard Input in the following format:
N L_1 L_2 ... L_N
Constraints
Print the number of different triangles that can be formed.
Sample Input 1
4 3 4 2 1
Sample Output 1
1
Only one triangle can be formed: the triangle formed by the first, second, and third sticks.
Sample Input 2
3 1 1000 1
Sample Output 2
0
No triangles can be formed.
Sample Input 3
7 218 786 704 233 645 728 389
Sample Output 3
23