编程题
### 问题描述 初始有两个整数序列,一个严格递增,另一个严格递减。 严格递增序列是一个整数序列 $[x_1 < x_2 < \dots < x_k]$。严格递减序列是一个整数序列 $[y_1 > y_2 > \dots > y_l]$。注意空序列和只包含一个元素的序列都可以被视为递增或递减序列。 这两个序列被合并成一个序列 $a$。此后,序列 $a$ 被打乱了。例如,对于一个递增序列 $[1, 3, 4]$ 和一个递减序列 $[10, 4, 2]$,可能得到的一些序列 $a$ 是 $[1, 2, 3, 4, 4, 10]$ 或 $[4, 2, 1, 10, 4, 3]$。 输入 $T$ 组数据,每一组均为打乱后的序列 $a_i$。 你的任务是判断序列 $a_i$ 能否拆分为**任何**两个合适的初始序列。其中一个应该是**严格递增**的序列,另一个应该是**严格递减**的序列。注意,空序列和只包含一个元素的序列都可以被视为递增或递减序列。 如果输入中存在矛盾,无法将给定的序列 $a_i$ 分为递增和递减序列,则输出 "$\texttt{NO}$"。 ### 输入格式 第一行包含一个整数 $T$ ($1 \le T \le 10$),表示序列的个数。 之后输入 $2T$ 行数据,每两行为一组数据。 每一组数据的第一行为一个整数 $n$ ($1\le n\le 2 \cdot 10^5$),表示这一组序列的元素个数。 每一组数据的第二行包含 $n$ 个整数 $a_i$($0 \le a_i \le 2 \cdot 10^5$),表示这一组序列的 $n$ 个元素。 ### 输出格式 输出 $T$ 行,第 $i$ 行表示第 $i$ 个序列是否能够拆分为两个合适的初始序列。 如果输入中存在矛盾,无法将给定的序列分为递增和递减序列,则输出 "$\texttt{NO}$"。 否则,输出 "$\texttt{YES}$"。 ### 样例输入 ```text 3 7 7 2 7 3 3 1 4 5 4 3 1 5 3 5 1 1 2 1 2 ``` ### 样例输出 ```text YES YES NO ```
查看答案
赣ICP备20007335号-2