查找
题目描述
现有一个有 \(n\) 个元素的集合 \(a\){\(a_1,a_2,a_3...a_n\)}。
同时对于任意一个 \(i>j\),确保 \(a_j \le a_i\)。
在确保上述性质成立的情况下,可以对集合 \(a\) 进行如下操作:
- 令 \(a_i\) \(+1\) 或 \(-1\)
- 删除集合中 \(a_x\) 之后的元素,\(x=\lfloor\frac{1+n}{2}\rfloor\)。
- 删除集合中 \(a_x\) 之前的元素,\(x=\lfloor\frac{1+n}{2}\rfloor\)。
在经历 \(k\) 次操作后,集合 \(a\) 中是否恰好有一段前缀或后缀使和为 \(sum\)?
输入格式
第一行共三个整数 \(n\),\(k\),\(sum\)。
第二行共 \(n\) 个整数,\({a_1,a_2,....,a_n}\)。
输出格式
若在经历 \(k\) 次操作后,集合 \(a\) 中是否恰好有一段连续子序列使得子序列和为 \(sum\),则输出Yes,反之输出No。
输入输出样例 #1
输入 #1
7 3 8
1 2 3 4 5 6 7
输出 #1
Yes
输入输出样例 #2
输入 #2
1 2 24
15
输出 #2
No
说明/提示
对于 30% 的数据,确保 \(1\le n\le10^2\),\(1\le k\le20\),\(0\le sum<100\),\(0\le a_i\le10^3\),\(0\le\sum_{i=1}^{n}a_i\le10^4\)。
对于 50% 的数据,确保 \(1\le n\le10^4\),\(1\le k\le10^3\),\(0\le sum\le10^6\),\(0\le a_i\le10^5\),\(0\le\sum_{i=1}^{n}a_i\le10^8\)。
对于 80% 的数据,确保 \(0\le\sum_{i=1}^{n}a_i\le10^8\)。
对于 100% 的数据,确保 \(1\le n\le3*10^4\),\(1\le k\le1.5*10^3\),\(0\le sum\le10^6\),\(0\le a_i\le3*10^5\),\(0\le\sum_{i=1}^{n}a_i\le10^9\)。
信息
- ID
- 1001
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 通过率
- 100%
- 上传者