CF1923C Find B
题目描述
一个长度为 $m$ 的数组 $a$ 被称为“好”的,如果存在一个长度为 $m$ 的整数数组 $b$,使得以下条件成立:
1. $\sum\limits_{i=1}^{m} a_i = \sum\limits_{i=1}^{m} b_i$;
2. 对于每一个 $i$($1 \leq i \leq m$),都有 $a_i \neq b_i$;
3. 对于每一个 $i$($1 \leq i \leq m$),都有 $b_i > 0$。
现在给定一个长度为 $n$ 的数组 $c$,其中每个元素都大于 $0$。
你需要回答 $q$ 个询问。在第 $i$ 个询问中,你需要判断子数组 $c_{l_{i}}, c_{l_{i}+1}, \dots, c_{r_{i}}$ 是否是“好”的。
输入格式
第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。
每个测试用例的第一行包含两个整数 $n$ 和 $q$($1 \leq n, q \leq 3 \cdot 10^5$),分别表示数组 $c$ 的长度和询问的数量。
每个测试用例的第二行包含 $n$ 个整数 $c_1, c_2, \dots, c_n$($1 \leq c_i \leq 10^9$)。
接下来 $q$ 行,每行包含两个整数 $l_i$ 和 $r_i$($1 \leq l_i \leq r_i \leq n$),表示第 $i$ 个子数组的左右端点。
输入的额外约束:所有测试用例中 $n$ 的总和不超过 $3 \cdot 10^5$,所有测试用例中 $q$ 的总和不超过 $3 \cdot 10^5$。
输出格式
对于每个询问,如果子数组是“好”的,输出 YES,否则输出 NO。
你可以用任意大小写输出答案。例如,yEs、yes、Yes 和 YES 都会被识别为肯定回答。
说明/提示
由 ChatGPT 4.1 翻译