CF2121F Yamakasi

题目描述

给你一个长度为 $n$ 的序列 $a_1,a_2,\dots,a_n$ 和两个整数 $s$ 和 $x$。请你计算元素之和等于 $s$ 并且最大值等于 $x$ 的子数组的数量。 更具体地说,计算有多少对 $1 \le l \le r \le n$ 满足以下条件: + $a_l + a_{l + 1} + \dots + a_r = s$ + $\max(a_l,a_{l + 1},\dots,a_r) = x$

输入格式

**本题目含有多测。** 第一行包含一个整数 $t(1 \le t \le 10^4)$,表示测试用例的个数。 每个测试用例的第一行包含三个整数 $n$,$s$ 和 $x(1 \le n \le 2 \times 10^5,-2 \times 10^{14} \le s \le 2 \times 10^{14},-10^9 \le x \le 10^9)$。 每个测试用例的第二行包含 $n$ 个整数 $a_1,a_2,\dots,a_n(-10^9 \le a_i \le 10^9)$。 保证 $\sum n \le 2 \times 10^5$。

输出格式

对于每个测试用例,输出元素总和等于 $s$ 并且最大值等于 $x$ 的子数组的数量。

说明/提示

在第一个测试用例中,满足条件的子数组是 $l = 1,r = 1$。 在第三个测试用例中,满足条件的子数组是 $l = 1,r = 1$ 和 $l = 3,r = 3$。 在第五个测试用例中,满足条件的子数组是 $l = 1,r = 3$ 和 $l = 6,r = 8$。 在第六个测试用例中,任何满足 $r = l + 2$ 的子数组都满足条件。 在第七个测试用例中,满足条件的子数组如下: + $l = 1$, $r = 7$ + $l = 2$, $r = 7$ + $l = 3$, $r = 6$ + $l = 4$, $r = 8$ + $l = 7$, $r = 11$ + $l = 7$, $r = 12$ + $l = 8$, $r = 10$ + $l = 9$, $r = 13$