#CF1905D. 循环 MEX
循环 MEX
D. 循环 MEX
每个测试点时间限制:$2$ 秒
每个测试点内存限制:$512$ 兆字节
对于一个数组 ,定义它的代价为:
$$\sum_{i=1}^{n} \operatorname{mex}([a_1,a_2,\dots,a_i]) $$给定集合 的一个排列 。你需要求出 的所有循环移位中,代价的最大值。
表示最小的非负整数 ,使得 没有在 中出现。
集合 的一个排列,是一个长度为 的数组,其中恰好包含从 到 的所有整数且互不相同,顺序任意。例如, 是一个排列,但 不是排列,因为 出现了两次; 也不是排列,因为此时 ,但数组中出现了 。
输入格式
每个输入包含多组测试数据。
第一行包含一个整数 ,表示测试数据组数,其中:
对于每组测试数据:
第一行包含一个整数 ,表示排列 的长度,其中:
第二行包含 个互不相同的整数 ,表示排列 的元素,其中:
保证所有测试数据中 的总和不超过:
输出格式
对于每组测试数据,输出一个整数,表示所有循环移位中代价的最大值。
样例输入
4
6
5 4 3 2 1 0
3
2 1 0
8
2 3 6 7 0 1 4 5
1
0
样例输出
15
5
31
1
说明
在第 组测试数据中,使代价最大的循环移位为 ,其代价为:
在第 组测试数据中,使代价最大的循环移位为 ,其代价为: