蜗蜗得到一个长度为 的整数序列 。他想把整个序列划分成若干个非空连续段,每个元素必须恰好属于其中一段。
每一段都必须满足两个条件:包含的元素数量不少于 ,且这一段中的最大值与最小值之差不超过 。
请你求出最少需要划分成多少段。如果无法完成划分,则输出 。
第一行包含三个整数 ,分别表示序列长度、每一段允许的最大值与最小值之差,以及每一段的最小长度。
第二行包含 个整数 ,表示这个整数序列。
输出一行一个整数,表示满足要求的最少段数。如果无法完成划分,输出 。
4 0 2
1 1 2 2
2
可以将序列划分为 和 两段。每段长度都为 ,最大值与最小值之差都为 。
整个序列的最大值与最小值之差为 ,不能只划分成一段,因此最少需要 段。
对于 100% 的数据,保证 ,,,。