AT_abc032_c [ABC032C] 列
题目描述
给定一个长度为 $N$ 的非负整数序列 $S={s_1,s_2,\ldots,s_N}$ 和一个整数 $K$。你的任务是求出满足以下条件的 $S$ 的**连续**子序列中,长度最长的那个的长度。子序列的长度必须为 $1$ 或更长。
- 该子序列中所有元素值的乘积不超过 $K$。
如果不存在满足条件的子序列,请输出 $0$。
输入格式
输入以如下格式从标准输入读入。
> $N$ $K$
> $s_1$
> $s_2$
> $\vdots$
> $s_N$
- 第 $1$ 行包含两个整数,分别表示数列的长度 $N\ (1\leq N\leq 10^5)$ 和题目中的整数 $K\ (0\leq K\leq 10^9)$,两数以空格分隔。
- 接下来的 $N$ 行中,每行包含一个整数,表示数列的每个元素。其中第 $i$ 行为 $s_i\ (0\leq s_i\leq 10^9)$。
输出格式
输出一行,表示所有元素乘积不超过 $K$ 的连续子序列中最长的长度。如果不存在满足条件的子序列,输出 $0$。请不要忘记输出末尾的换行符。
说明/提示
## 部分分
本题设置了部分分。满分为 $100$ 分。
- 对于满足 $N\leq 1000$ 的数据集 1,答对可获得 $20$ 分。
- 对于没有额外限制的数据集 2,答对可再获得 $80$ 分。
## 样例解释 1
选择子序列 $S[2..5]=s_2,s_3,s_4,s_5$,其乘积为 $3\times 1\times 1\times 2=6$,不超过 $K$。
由 ChatGPT 4.1 翻译