小苯的麦克斯
题号:NC300248
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小苯在学习计算机的过程中,接触到了两个概念:\rm MAX\rm MEX,对于一个序列来说,前者表示序列中的最大值,后者表示序列中未出现的最小非负整数。

\hspace{15pt}这天,小红给了小苯一个长度为 n 的序列,她知道小苯分不清这些概念,因此特意提出了一个结合两个概念的题目:
\hspace{15pt}她希望小苯从 a 中选择一个连续区间(不能只选一个数字)l,r\ (1 \leq l < r \leq n),并最大化区间中所有的数字的 \rm MAX-MEX,即最大值减去最小未出现非负整数的值。

\hspace{15pt}现在请你帮小苯回答一下这个问题吧。

输入描述:

\hspace{15pt}每个测试文件包含多组测试数据。第一行输入一个整数 T\ (1 \leqq T \leqq 10^4) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行一个正整数 n\ (2 \leqq n \leqq 3 \times 10^5) 表示序列 a 的长度。
\hspace{15pt}第二行 n 个整数 a_i\ (0 \leqq a_i \leqq 10^9),表示序列 a

\hspace{15pt}除此之外,保证所有测试数据中,n 的总和不超过 3 \times 10^5

输出描述:

\hspace{15pt}对于每组数据:在单独的一行输出一个整数表示题目所求的最大值。
示例1

输入

复制
2
5
1 2 3 4 5
4
0 0 0 0

输出

复制
5
-1

说明

对于第一组测试数据,选择区间 [1,5] 即可,此时最大值为 5,而最小未出现非负整数为 0,因此 \rm MAX-MEX=5-0=5

对于第二组测试数据,选择区间 [1,4] 即可,此时最大值为 0,而最小未出现非负整数为 1,此时 \rm MAX-MEX=0-1=-1