2609. 餐厅经营
1000ms
256MB
简单
动态规划
Dynamic Programming
题目描述
小 A 在玩游戏,游戏中小 A 要模拟经营一家餐厅。
现在小 A 正在按照先后顺序地准备 $n$ 道菜肴,每个菜肴的美味程度为 $a_i$。此时来了一个客人,小 A 要给这个客人安排菜单。
为了能让客人吃饭有循序渐进的体验,小 A 希望给这个客人上的菜肴,满足美味程度构成一个公差为 $d$ 的等差数列。为此,小 A 做的一部分菜肴就不会端给客人了。
小 A 希望知道,客人最多能吃到几个菜?
请注意,小 A 要求,上菜的顺序与做菜的顺序一致。这意味着,你需要保证你的等差数列中元素的相对顺序与原序列中顺序一致。
输入格式
第一行输入两个正整数 $n$ 和 $d$,表示菜品种类数和公差。
第二行输入 $n$ 个正整数 $a_i$,表示每个菜品的美味程度。
输出格式
输出一行,一个正整数,表示客人最多能吃几个菜。
样例 1
输入 (Input)
输出 (Output)
样例说明
**【样例解释】**
小 A 可以给客人吃第一个、第三个、第五个、第七个菜,满足公差为 $2$ 的同时客人吃到的菜最多,为 $4$ 种。
**【数据范围】**
对于 $40\%$ 的数据,$1 \leq n \leq 1000$,$1 \leq a_i,d \leq 1000$;
对于所有数据,$1 \leq n\leq 5\times 10^5$,$-10^9 \leq a_i,d \leq 10^9$。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功