#Z1003. 周期取段

周期取段

题目描述

给定一个长度为 nn 的正整数序列 a1,a2,,ana_1,a_2,\dots,a_n。将这个序列无限重复,得到一个无限长序列:

a1,a2,,an,a1,a2,,an,a_1,a_2,\dots,a_n,a_1,a_2,\dots,a_n,\dots

你需要在这个无限长序列中选择一段连续子段,使得子段元素和恰好为 tt。如果存在这样的子段,输出最长可能长度;如果不存在,输出 No

输入格式

第一行两个整数 n,tn,t,表示原序列长度和目标和。

第二行 nn 个正整数,第 ii 个数为 aia_i

输出格式

如果不存在元素和为 tt 的连续子段,输出一行 No

否则第一行输出 Yes,第二行输出一个整数,表示满足条件的最长连续子段长度。

3 9
2 1 2
Yes
5
3 9
2 2 2
No
4 10
1 2 3 4
Yes
4

样例解释

样例 1 中,无限序列为 2 1 2 2 1 2 ...,可以选择从第 33 个数到第 77 个数,子段为 2 2 1 2 2,和为 99,长度为 55

样例 2 中,任意连续子段的和都是偶数,不可能得到 99

样例 3 中,直接选择一个完整周期,长度为 44

数据范围与约定

子任务 分值 限制
11 3030 n10n \le 10t100t \le 100ai10a_i \le 10
22 2020 n105n \le 10^5t1018t \le 10^{18}ai109a_i \le 10^9,特殊性质 A
33 n105n \le 10^5t105t \le 10^5ai105a_i \le 10^5
44 3030 n105n \le 10^5t1018t \le 10^{18}ai109a_i \le 10^9

特殊性质 A:保证所有 aia_i 相等。

下发样例

下发样例下载