CF1398A Bad Triangle

题目描述

给定一个按非递减顺序排序的数组 $a_1, a_2, \dots, a_n$(即 $a_i \le a_{i+1}$)。 请你找到三个下标 $i$、$j$、$k$,满足 $1 \le i < j < k \le n$,并且无法用 $a_i$、$a_j$ 和 $a_k$ 作为边长构成一个非退化三角形(即面积不为零的三角形)。例如,边长为 $3$、$4$ 和 $5$ 可以构成非退化三角形,但边长为 $3$、$4$ 和 $7$ 则不行。如果不存在这样的三元组,请输出 -1。

输入格式

第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($3 \le n \le 5 \cdot 10^4$),表示数组 $a$ 的长度。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^9$,$a_{i-1} \le a_i$),表示数组 $a$。 保证所有测试用例中 $n$ 的总和不超过 $10^5$。

输出格式

对于每个测试用例,输出一行答案。 如果存在一组三元组下标 $i$、$j$、$k$($i < j < k$),使得无法用 $a_i$、$a_j$ 和 $a_k$ 构成非退化三角形,输出这三个下标,按升序排列。如果有多组答案,输出任意一组即可。 如果不存在这样的三元组,输出 -1。

说明/提示

在第一个测试用例中,边长为 $6$、$11$ 和 $18$ 时无法构成非退化三角形。注意,这并不是唯一的正确答案。 在第二个测试用例中,总是可以构成非退化三角形。 由 ChatGPT 4.1 翻译