AT_abc384_d [ABC384D] Repeated Sequence
题目描述
给定一个周期为 $N$ 的无限数列 $A=(A_1,A_2,A_3,\dotsc)$ 的前 $N$ 项 $A_1,A_2,\dotsc,A_N$。
请判断在该数列所有非空连续子序列中,是否存在某个子序列的和恰好等于 $S$。
这里,周期为 $N$ 的无限数列 $A$ 的定义为:对于所有满足 $i > N$ 的整数 $i$,都有 $A_i = A_{i-N}$。
输入格式
输入以如下格式从标准输入读入。
> $N$ $S$ $A_1$ $A_2$ $\dotsc$ $A_N$
输出格式
如果存在 $A$ 的某个连续子序列 $(A_l,A_{l+1},\dotsc,A_r)$ 满足 $A_l+A_{l+1}+\dotsb+A_r=S$,输出 `Yes`,否则输出 `No`。
说明/提示
### 限制条件
- $1\leq N\leq 2\times 10^5$
- $1\leq A_i\leq 10^9$
- $1\leq S\leq 10^{18}$
- 所有输入均为整数
### 样例解释 1
数列 $A$ 形如 $(3,8,4,3,8,4,3,8,4,\dotsc)$。对于 $A$ 的子序列 $(A_2,A_3,A_4,A_5,A_6,A_7,A_8,A_9)=(8,4,3,8,4,3,8,4)$,有 $8+4+3+8+4+3+8+4=42$,因此应输出 `Yes`。
### 样例解释 2
$A$ 的所有元素都不小于 $3$,因此 $A$ 的所有非空连续子序列的和都不小于 $3$。所以不存在和为 $1$ 的子序列,应输出 `No`。
由 ChatGPT 4.1 翻译