#CF1905F. 田地不应为空

田地不应为空

F. 田地不应为空

时间限制:$2$ 秒

内存限制:$256$ MB

给定一个长度为 nn 的排列 pp

如果下标 xx 满足:

  • 对于所有 y<xy < x,都有 py<pxp_y < p_x
  • 对于所有 y>xy > x,都有 py>pxp_y > p_x

那么称下标 xx 是一个好的下标。

f(p)f(p) 为排列 pp 中好的下标个数。

你可以执行如下操作恰好一次:

  • 选择两个不同的下标 iijj
  • 交换 pip_ipjp_j

求在恰好执行一次上述操作后,f(p)f(p) 的最大可能值。

排列的定义:长度为 nn 的排列是一个由 11nnnn 个互不相同的整数按任意顺序组成的数组。例如,[2,3,1,5,4][2,3,1,5,4] 是一个排列,而 [1,2,2][1,2,2] 不是排列(因为 22 出现了两次),[1,3,4][1,3,4] 也不是排列(因为当 n=3n=3 时,数组中出现了 44)。

输入格式

每个输入包含多组测试数据。

第一行包含一个整数 tt1t21041 \le t \le 2 \cdot 10^4),表示测试数据组数。

对于每组测试数据:

第一行包含一个整数 nn2n21052 \le n \le 2 \cdot 10^5),表示排列 pp 的长度。

第二行包含 nn 个互不相同的整数 p1,p2,,pnp_1, p_2, \dots, p_n1pin1 \le p_i \le n),表示排列 pp

保证所有测试数据中 nn 的总和不超过 21052 \cdot 10^5

输出格式

对于每组测试数据,输出一个整数,表示在恰好执行一次交换操作后,f(p)f(p) 的最大值。

样例输入

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

样例输出

3
5
2
3
2

说明

在第一组测试数据中,p=[1,2,3,4,5]p=[1,2,3,4,5],此时 f(p)=5f(p)=5,已经达到了可能的最大值。但题目要求必须执行一次操作,因此我们可以选择 i=1i=1j=2j=2,交换后得到 p=[2,1,3,4,5]p=[2,1,3,4,5],此时 f(p)=3f(p)=3

在第二组测试数据中,我们可以选择 i=1i=1j=2j=2,将排列变为 [1,2,3,4,5][1,2,3,4,5],从而得到 f(p)=5f(p)=5