#CF4056. 另一个不等式问题

另一个不等式问题

题目描述

给你一个数组 a1,a2,ana_1,a_2,…a_n。计算满足下面不等式的索引对 (i,j)(i,j) 的数量:

  • 1i,jn1≤i,j≤n,且 aiiajja_i<i<a_j<j

输入格式

第一行包含整数 t(1t1000)t(1≤t≤1000) 代表测试用例数。

每个测试用例的第一行包含一个整数 n(2n2105n(2≤n≤2⋅10^5) 代表数组的长度。

每个测试用例的第二行包含 nn 个整数 a1,a2,,an(0ai109)a_1,a_2,…,a_n(0≤a_i≤10^9) 代表数组元素。

保证所有测试用例的 nn 之和不超过 21052⋅10^5

输出格式

对于每个测试用例,输出一个整数,代表满足题目中条件的索引对数。

请注意,某些测试用例的答案可能超过 3232 位整数类型,因此您应该在编程语言中至少使用 6464 位整数类型。

测试样例

5
8
1 1 2 3 8 2 1 4
2
1 2
10
0 2 1 6 3 4 1 2 8 3
2
1 1000000000
3
0 1000000000 2
3
0
10
0
1

样例说明

对于第一个测试用例,符合要求的对是 (i,j){(2,4),(2,8),(3,8)}(i,j)=\{(2,4),(2,8),(3,8)\}

  • (2,4)(2,4) 符合要求,因为 a2=1a4=31<2<3<4a_2=1,a_4=3,1<2<3<4
  • (2,8)(2,8) 符合要求,因为 a2=1a8=41<2<4<8a_2=1,a_8=4,1<2<4<8
  • (3,8)(3,8) 符合要求,因为 a3=2a8=42<3<4<8a_3=2,a_8=4,2<3<4<8