#CF2053A. 温柔的细木工
温柔的细木工
A. 温柔的细木工
每个测试点的时间限制: 秒
每个测试点的内存限制: 兆字节
我会用烟花宣告,用挥手告别,用鞠躬感谢:过去的就让它过去吧;不仅在接下来的路上我会悠闲快乐地行走,而且脚步也不会停下,因为时间从不会停止流逝;因为明年,我们还会再见。
—— Cocoly1990,《再见 2022》
在梦中,Cocoly 会去度一个长假,身边没有任何烦恼。因此他会尝试许多新事物,比如……成为一名细木工。为了学好这门手艺,Cocoly 决定成为大师的学徒,但在他面前摆着一个艰巨的任务需要他去解决。
Cocoly 得到一个数组 。
大师称一个整数集合 是 稳定的,当且仅当:对于集合 中任意可能的 、 和 (注意 、、 不一定两两不同),长度为 、、 的木棍可以构成一个 非退化三角形。
Cocoly 需要将数组 划分成若干个(可能是 个或 个)非空连续子段,使得:对于每个子段,包含其中所有元素的集合是稳定的。
大师希望 Cocoly 能用 至少两种不同的 方式划分 。你需要帮助他判断这是否可能。
边长为 、、 的三角形称为 非退化三角形,当且仅当:
- ,
- ,
- 。
序列 是序列 的一个子段,如果 可以通过从 的开头删除若干(可能为零或全部)元素,以及从 的结尾删除若干(可能为零或全部)元素得到。
两个划分被认为是 不同 的,当且仅当至少满足以下条件之一:
- 两个划分中划分出的连续子段的数量不同;
- 存在一个整数 ,使得两个划分中第 个子段的长度不同。
输入
每个测试包含多个测试用例。第一行包含一个整数 ()—— 测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 ()—— 数组 的长度。
第二行包含 个整数 ()—— 数组 中的元素。
输出
对于每个测试用例,如果存在至少两种划分 的方式,输出 YES,否则输出 NO。
你可以以任意大小写输出答案(大写或小写)。例如,yEs、yes、Yes 和 YES 都会被识别为肯定回答。
示例
输入
5
4
2 3 5 7
4
115 9 2 28
5
8 4 1 6 2
6
1 5 4 1 4 7
2
100000 100000
输出
YES
NO
NO
YES
YES
注意
在第一个测试用例中,以下两种划分是可行的:
- ,因为 是稳定的(长度分别为 、、、 的木棍都能构成非退化三角形), 是稳定的(长度分别为 、、、 的木棍都能构成非退化三角形)。
- ,因为 是稳定的(长度 能构成非退化三角形), 是稳定的(长度 、、、 都能构成非退化三角形), 是稳定的(长度 能构成非退化三角形)。
注意其他一些划分也满足条件,例如 和 。
在第二个测试用例中,Cocoly 只能将每个元素单独作为一个子段,得到 。因为只有一种可能的划分,答案是 NO。
在第三个测试用例中,请注意划分 不满足条件,因为 不是一个稳定的集合:长度为 、 和 的木棍无法构成非退化三角形。