少男少女成双对
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述



七夕节到了。

n 位同学站成一排,月色哥哥给每位同学都确定了一个特征值,第 i 位同学有一个特征值 a_i,这里我们认为如果某两位同学的特征值相同,那么这两位同学便能够被顺利牵线,走到一起。

现在,氧气少年要确定一个区间 [l,r],满足:

  •  对于编号位于该区间中的任意一位同学,都有恰好 1 位同学的特征值与 TA 的相同。

如:a=[1,1,2,3,2,3,1],区间 [a_1,a_2],[a_3\dots a_6],[a_1\dots a_6] 等均符合条件。而 [a_1\dots a_3] 不符合条件,因为对于区间中第 3 位同学而言,没有人的特征值与 TA 的相同; [a_1\dots a_7] 不符合条件,因为不管是对于区间中第 1 位还是第 2 位还是第 7 位同学而言,都有 2 位同学的特征值与 TA 的相同。

请求出氧气少年可以选择多少种区间。

输入描述:

第一行包含一个整数 T(1\leq T \leq 10^5),表示测试用例的组数。

对于每组测试用例:

第一行包含一个整数 n(1\leq n\leq 2\cdot 10^5),表示序列的长度。

第二行包含 n 个整数 a_1\dots a_n(0\leq a_i\leq 10^9),表示该序列。

保证对于所有的测试用例,n 的总和不超过 2\cdot 10^5

输出描述:

对于每组测试用例:

仅输出一行,包含一个整数,表示答案。
示例1

输入

复制
4
3
1 2 2
3
1 2 3
6
1 1 4 5 1 4
6
1 2 2 1 1 1

输出

复制
1
0
1
5