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 翻译