Strip
题意翻译
给定一个长度为 $n$ 的数组,要求把数组分为若干部分,满足下面两个条件:
1. 每个部分至少含有 $l$ 个元素;
2. 每个部分中两两数的差值的最大值不超过 $s$。
问:在满足上述两个条件的情况下,数组最少能分成多少个部分?
$1\le n,l\le 10^5,1\le s\le 10^9,
\forall 1\le i\le n, -10^9\le a_i\le 10^9$。
题目描述
Alexandra has a paper strip with $ n $ numbers on it. Let's call them $ a_{i} $ from left to right.
Now Alexandra wants to split it into some pieces (possibly $ 1 $ ). For each piece of strip, it must satisfy:
- Each piece should contain at least $ l $ numbers.
- The difference between the maximal and the minimal number on the piece should be at most $ s $ .
Please help Alexandra to find the minimal number of pieces meeting the condition above.
输入输出格式
输入格式
The first line contains three space-separated integers $n,s,l (1\le n\le10^5, 0\le s\le10^9, 1\le l\le10^5)$.
The second line contains $n$ integers $a_i$ separated by spaces $(-10^9\le a_i\le10^9)$.
输出格式
Output the minimal number of strip pieces.
If there are no ways to split the strip, output -1.
输入输出样例
输入样例 #1
7 2 2
1 3 1 2 4 1 2
输出样例 #1
3
输入样例 #2
7 2 2
1 100 1 100 1 100 1
输出样例 #2
-1
说明
For the first sample, we can split the strip into $3$ pieces: $[1,3,1], [2,4], [1,2]$.
For the second sample, we can't let $1$ and $100$ be on the same piece, so no solution exists.