给定一个长度为n的数组a,我们可以对数组a执行以下操作任意次:
(1)选择x=an;
(2)将数组a中的所有元素分为两部分:左半部分的所有元素ai<=x,右半部分的所有元素aj>x;特别提示:两部分中的元素在原数组中的相对位置不变;
(3)重新将两部分连接在一起组成一个新数组,即左半部分整体放到前面,右半部分放在后面;显然,数组长度仍然为n;
例如:a=[2,4,1,5,3],此时x=3,a-->[2,1,3],[4,5]-->[2,1,3,4,5]
可以确定,对数组a进行若干次上述操作之后,数组将不会再发生改变。
请问,对于给定的数组a,至少执行多少次上述操作之后,数组a将不再发生改变?
第一行只有一个整数t(1≤t≤100):测试用例的数量。
接下来共2t行,每个测试用例两行:
第一行只有一个整数n(1≤n≤2e5): 数组a的长度
第二行共有n个整数:数组a的n个元素值(1≤ai≤1e9)
输出共t行,每个测试用例一行一个整数:数组a不再发生改变所需要的最少操作次数
对于第一个测试用例,第一次操作过程如下:
a=[1,4,2,5,3],
x=3. [2,4,1,5,3]→[2,1,3],[4,5]→[2,1,3,4,5]
第二次及以后的操作过程如下:
a=[2,1,3,4,5],
x=5. [2,1,3,4,5]→[2,1,3,4,5],[]→[2,1,3,4,5]
显然,此时数组a不再发生改变,所以所需要的最少操作次数1;
对于第二个测试用例,第一次操作过程如下:
a=[5,3,2,4,1],
x=1. [5,3,2,4,1]→[1],[5,3,2,4]→[1,5,3,2,4] .
第二次操作过程如下:
a=[1,5,3,2,4],
x=4. [1,5,3,2,4]→[1,3,2,4],[5]→[1,3,2,4,5].
第三次及以后的操作过程如下:
a=[1,3,2,4,5],
x=5. [1,3,2,4,5]→[1,3,2,4,5],[]→[1,3,2,4,5].
显然,此时数组a不再发生改变,所以所需要的最少操作次数2.
对于第三个测试用例,显然不会发生改变,所以所需要的最少操作次数等于0.