浇水大师
题号:NC232856
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

园艺师F有一排L个盆栽(可以简化为在区间上,每两个整点间有一个盆栽),他想用一些浇水半径为AB的装置给他所有的盆栽浇水。
但仅仅是装满浇水装置就太简单了,F希望这些洒水器在范围不重叠的情况下恰好覆盖所有盆栽,且不会有洒水范围在没有盆栽的地方。同时他希望在某些区间只被一个洒水装置覆盖(区间可能重叠)。
你能帮F算出他最少需要多少个洒水装置吗?

输入描述:

第一行输入两个整数N,L (, , L是偶数)。
第二行输入两个整数A,B ()。
接下来的n行,每行输入两个整数S_i,E_i (),表示区间的端点。

输出描述:

输出一个整数,表示需要的最少洒水装置数。若无法满足F的要求,输出-1
示例1

输入

复制
2 8
1 2
6 7
3 6

输出

复制
3

说明

安装方案:[0,2],[2,6],[6,8](在2和6两个位置没有重叠)。