CF1793C Dora and Search

题目描述

如你所知,女孩 Dora 总是在寻找某些东西。这一次,她得到了一个排列,并希望找到这样一个子区间,使得该子区间两端的元素都不是整个子区间的最小值或最大值。更正式地说,你需要找到两个数 $l$ 和 $r$($1 \leq l \leq r \leq n$),使得 $a_l \neq \min(a_l, a_{l+1}, \ldots, a_r)$,$a_l \neq \max(a_l, a_{l+1}, \ldots, a_r)$,并且 $a_r \neq \min(a_l, a_{l+1}, \ldots, a_r)$,$a_r \neq \max(a_l, a_{l+1}, \ldots, a_r)$。 一个长度为 $n$ 的排列是一个包含 $n$ 个互不相同的整数的数组,这些整数从 $1$ 到 $n$,顺序任意。例如,$[2,3,1,5,4]$ 是一个排列,但 $[1,2,2]$ 不是排列($2$ 在数组中出现了两次),$[1,3,4]$ 也不是排列($n=3$,但数组中出现了 $4$)。 请帮助 Dora 找到这样一个子区间,或者告诉她不存在这样的子区间。

输入格式

每组测试包含多个测试用例。第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。 对于每个测试用例,第一行包含一个整数 $n$($1 \leq n \leq 2 \times 10^5$),表示排列的长度。 第二行包含 $n$ 个互不相同的整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq n$),表示排列的元素。 保证所有测试用例中 $n$ 的总和不超过 $2 \times 10^5$。

输出格式

对于每个测试用例,如果不存在满足条件的子区间,输出 $-1$。 否则,输出两个下标 $l, r$,使得 $[a_l, a_{l+1}, \ldots, a_r]$ 满足所有条件。 如果有多个解,输出任意一个即可。

说明/提示

在第一个和第四个测试用例中,可以证明不存在满足条件的子区间。 在第二个测试用例中,子区间 $[1, 4]$ 满足所有条件,因为 $\max(a_1, a_2, a_3, a_4) = 4, \min(a_1, a_2, a_3, a_4) = 1$,可以看到所有条件都满足。 在第三个测试用例中,子区间 $[2, 6]$ 也满足所有描述的条件。 由 ChatGPT 4.1 翻译