CF1474D Cleaning

题目描述

在清理海岸时,Alice 发现了 $n$ 堆石头。第 $i$ 堆有 $a_i$ 块石头。 对于所有 $1 \leq i \leq n - 1$,第 $i$ 堆和第 $i+1$ 堆是相邻的。如果第 $i$ 堆被清空,第 $i-1$ 堆和第 $i+1$ 堆不会变成相邻的。 Alice 太懒了,不想自己移走这些石头,于是她让你来帮忙。她只允许你进行如下操作: - 选择两个相邻的石堆,如果它们都不为空,则从每堆各取走一块石头。 Alice 明白有时仅靠这种操作无法移除所有石头,因此她允许你使用如下“超能力”: - 在开始清理前,你可以选择两个相邻的石堆并交换它们的位置。 请你判断,是否可以在最多使用一次“超能力”的情况下,将所有石头全部移除。

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($2 \leq n \leq 2 \times 10^5$),表示石堆的数量。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \leq a_i \leq 10^9$),表示每堆石头的数量。 保证所有测试用例中 $n$ 的总和不超过 $2 \times 10^5$。

输出格式

对于每个测试用例,输出一行 YES 或 NO,表示是否可以在最多使用一次“超能力”的情况下移除所有石头。

说明/提示

在第一个测试用例中,你可以不使用“超能力”就移除所有石头:$[1, 2, 1] \rightarrow [1, 1, 0] \rightarrow [0, 0, 0]$。 在第二个测试用例中,你可以对第二堆和第三堆使用“超能力”,然后像第一个测试用例那样操作。 在第三个测试用例中,你可以对第四堆和第五堆使用“超能力”,得到 $a = [2, 2, 2, 3, 1]$。 在第四个测试用例中,你可以对第一堆和第二堆使用“超能力”,得到 $a = [1900, 2100, 1600, 3000, 1600]$。 由 ChatGPT 4.1 翻译