#CF1380A. 三个下标

三个下标

题目描述

每个测试的时间限制:2 秒
每个测试的内存限制:256 兆字节

给定一个排列 p1,p2,,pnp_1, p_2, \dots, p_n。回忆一下,一个由 nn 个整数组成的序列被称为排列,当且仅当它包含 11nn 中的每个整数恰好一次。

找到三个下标 i,j,ki, j, k,使得:

  • 1i<j<kn1 \le i < j < k \le n
  • pi<pjp_i < p_jpj>pkp_j > p_k

或者说这样的下标不存在。

输入格式

第一行包含一个整数 TT1T2001 \le T \le 200)—— 测试用例的数量。

接下来的 2T2T 行包含测试用例,每个测试用例两行:

  • 第一行包含一个整数 nn3n10003 \le n \le 1000)—— 排列 pp 的长度。
  • 第二行包含 nn 个整数 p1,p2,,pnp_1, p_2, \dots, p_n1pin1 \le p_i \le npipjp_i \neq p_jiji \neq j)—— 排列 pp

输出格式

对于每个测试用例:

  • 如果存在这样的下标 i,j,ki, j, k,则输出 YES(不区分大小写)以及这三个下标;
  • 如果不存在这样的下标,则输出 NO(不区分大小写)。

如果有多个有效的三元组,输出任意一组即可。

3
4
2 1 4 3
6
4 6 1 2 5 3
5
5 3 1 2 4
YES
2 3 4
YES
3 5 6
NO