#6608. B. Right Maximum(右侧最大值)

B. Right Maximum(右侧最大值)

B. Right Maximum(右侧最大值)


题目描述

给定一个长度为 ( n ) 的整数数组 ( a )。

当数组不为空时,重复执行如下操作:

  1. 在当前数组中选择一个最大值元素
    • 如果最大值有多个,选择最靠右的那个
  2. 删除该元素以及它右边的所有元素(包括它本身)。

任务

求:在数组变为空之前,一共会执行多少次操作。


输入格式

  • 第一行一个整数 ( t )(1t104)(( 1 \le t \le 10^4 )),表示测试用例数量。
  • 每个测试用例:
    • 第一行一个整数 ( n )(2n2×105)(( 2 \le n \le 2 \times 10^5 ))
    • 第二行 ( n ) 个整数(a1,a2,,an)(1ain) ( a_1, a_2, \dots, a_n )(( 1 \le a_i \le n ))

额外保证: 所有测试用例中 ( n ) 的总和不超过 (2×105)( 2 \times 10^5 )


输出格式

对于每个测试用例,输出一个整数:操作次数。


样例

输入

4
5
2 1 2 3 1
6
1 2 3 4 5 6
3
3 2 1
4
1 3 3 1

输出

3
6
1
3

样例解释

样例 1:

初始数组:

[2, 1, 2, 3, 1]
  • 第1次:最大值是 3(位置4) 删除后变为:

    [2, 1, 2]
    
  • 第2次:最大值是 2(位置3,取最右) 删除后变为:

    [2, 1]
    
  • 第3次:最大值是 2(位置1) 删除后数组为空

👉 共 3 次操作