#P15852. [Roi2025 Team]Predicting a Position / 预测位置

[Roi2025 Team]Predicting a Position / 预测位置

给定一个严格递增的整数关键字数组 xix_i,以及一个非负整数常数 ε\varepsilon

需要将原数组划分为尽量少的若干连续子数组,使得对于每个子数组 [lr][l\ldots r],都存在一个线性函数

f(x)=kx+bf(x)=k\cdot x+b

能够预测关键字 xix_i 在该子数组中的相对位置 ili-l,且误差不超过 ε\varepsilon

形式化地,对于第 jj 个子数组 [ljrj][l_j\ldots r_j],需要存在系数 kj,bjk_j,b_j,不要求为整数,使得对所有 i[lj,rj]i\in[l_j,r_j] 都有:

fj(xi)(ilj)ε|f_j(x_i)-(i-l_j)|\le \varepsilon

fj(x)=kjx+bjf_j(x)=k_jx+b_j

输入格式

第一行包含两个整数 n,εn,\varepsilon

2n106,0εn2\le n\le 10^6,\qquad 0\le \varepsilon\le n

第二行包含 nn 个严格递增的整数 xix_i

2109x1<x2<<xn2109-2\cdot 10^9\le x_1<x_2<\cdots<x_n\le 2\cdot 10^9

输出格式

输出一个整数 mm,表示满足要求的最少子数组数量。

样例

8 0
1 2 3 4 7 10 13 16
2

样例说明

可以划分为两个子数组:

[1, 2, 3, 4]
[7, 10, 13, 16]

第一个子数组可以用 f(x)=x1f(x)=x-1 精确预测位置。第二个子数组可以用

f(x)=x73=13x73f(x)=\frac{x-7}{3}=\frac13x-\frac73

精确预测位置。