CF1922B.Forming Triangles
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You have n sticks, numbered from 1 to n . The length of the i -th stick is 2ai .
You want to choose exactly 3 sticks out of the given n sticks, and form a non-degenerate triangle out of them, using the sticks as the sides of the triangle. A triangle is called non-degenerate if its area is strictly greater than 0 .
You have to calculate the number of ways to choose exactly 3 sticks so that a triangle can be formed out of them. Note that the order of choosing sticks does not matter (for example, choosing the 1 -st, 2 -nd and 4 -th stick is the same as choosing the 2 -nd, 4 -th and 1 -st stick).
输入格式
The first line contains one integer t ( 1≤t≤104 ) — the number of test cases.
Each test case consists of two lines:
- the first line contains one integer n ( 1≤n≤3⋅105 );
- the second line contains n integers a1,a2,…,an ( 0≤ai≤n ).
Additional constraint on the input: the sum of n over all test cases does not exceed 3⋅105 .
输出格式
For each test case, print one integer — the number of ways to choose exactly 3 sticks so that a triangle can be formed out of them.
输入输出样例
输入#1
4 7 1 1 1 1 1 1 1 4 3 2 1 3 3 1 2 3 1 1
输出#1
35 2 0 0
说明/提示
In the first test case of the example, any three sticks out of the given 7 can be chosen.
In the second test case of the example, you can choose the 1 -st, 2 -nd and 4 -th stick, or the 1 -st, 3 -rd and 4 -th stick.
In the third test case of the example, you cannot form a triangle out of the given sticks with lengths 2 , 4 and 8 .