P0502

[USACO2004 Dec] Dividing the Path 划区灌溉

[USACO2004 Dec] Dividing the Path 划区灌溉

约翰的奶牛们发现山脊上的草特别美味。为了维持草的生长,约翰打算安装若干喷灌器。

为简化问题,山脊可以看成一维的数轴,长为 LL,而且 LL 一定是一个偶数。每个喷灌器都必须安装在山脊上,它可以双向喷灌,并有确定的射程,该射程不短于 AA、不长于 BB。喷灌器所在位置两边射程之内的区域,都属于它的灌溉区域。

现在要求山脊的每一个位置都恰好被一个喷灌器灌溉到,也就是说喷灌器的灌溉区域不允许重叠,同时也不允许灌溉到山脊两端之外的地方。

约翰有 nn 只奶牛,每一只都有特别喜爱的草区,第 ii 只奶牛的草区是闭区间 [Si,Ei][S_i, E_i],不同奶牛的草区可以重叠。要求每只奶牛的草区仅被一个喷灌器灌溉(这个喷灌器的灌溉范围可以超出该草区)。

请求出最少需要的喷灌器数目。

输入格式

第一行两个空格分隔的整数 nn 和 LL。

第二行两个空格分隔的整数 AA 和 BB。

接下来 nn 行,每行两个整数 SiS_i 和 EiE_i,分别表示某只奶牛喜爱的草区的起点与终点。位置以距山脊起点的距离给出。

输出格式

一行一个整数,表示所需喷灌器的最少数目。如果不存在合法的安装方案,输出 −1-1。

样例输入

2 8
1 2
6 7
3 6

样例输出

3

样例解释

把山脊划分为 [0,2][0,2]、[2,6][2,6]、[6,8][6,8] 三段,对应的喷灌器射程依次为 1,2,11, 2, 1,都在 [A,B]=[1,2][A, B]=[1,2] 内。两只奶牛的草区 [6,7]⊆[6,8][6,7]\subseteq[6,8]、[3,6]⊆[2,6][3,6]\subseteq[2,6] 均只被一个喷灌器覆盖,因此 33 个喷灌器是可行的。

数据范围

  • 1≤n≤1031\le n\le 10^3;
  • 1≤L≤1061\le L\le 10^6,且 LL 为偶数;
  • 1≤A≤B≤10001\le A\le B\le 1000;
  • 0≤Si<Ei≤L0\le S_i< E_i\le L。

来源与许可

本题为 USACO 2004 Dec 试题「Dividing the Path 划区灌溉」,题面与测试数据整理自 BZOJ 1986。

样例 1

输入

2 8
1 2
6 7
3 6

输出

3