CF1922B.Forming Triangles

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You have nn sticks, numbered from 11 to nn . The length of the ii -th stick is 2ai2^{a_i} .

You want to choose exactly 33 sticks out of the given nn 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 00 .

You have to calculate the number of ways to choose exactly 33 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 11 -st, 22 -nd and 44 -th stick is the same as choosing the 22 -nd, 44 -th and 11 -st stick).

输入格式

The first line contains one integer tt ( 1t1041 \le t \le 10^4 ) — the number of test cases.

Each test case consists of two lines:

  • the first line contains one integer nn ( 1n31051 \le n \le 3 \cdot 10^5 );
  • the second line contains nn integers a1,a2,,ana_1, a_2, \dots, a_n ( 0ain0 \le a_i \le n ).

Additional constraint on the input: the sum of nn over all test cases does not exceed 31053 \cdot 10^5 .

输出格式

For each test case, print one integer — the number of ways to choose exactly 33 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 77 can be chosen.

In the second test case of the example, you can choose the 11 -st, 22 -nd and 44 -th stick, or the 11 -st, 33 -rd and 44 -th stick.

In the third test case of the example, you cannot form a triangle out of the given sticks with lengths 22 , 44 and 88 .

首页