#2659. 划区灌溉

划区灌溉

题目描述

FarmerJohn\red{Farmer John }的奶牛发现,在他的田地里,沿着山脊生长的三叶草特别好。为了给三叶草浇水,农夫约翰正在山脊上安装洒水器。为了使安装更容易,每个喷头必须沿山 脊安装(我们可以将其视为长度为 L\red{L(}1<=L<=1,000,000\red{1 <= L <= 1,000,000)}的一维数线;L\red{L }是偶数)。

每个洒水器沿山脊在两个方向上浇水一段距离。每个喷雾半径都是 A..B\red{A..B }范围内的整数 (1<=A<=B<=1000)\red{(1 <= A <= B <= 1000)}FarmerJohn\red{Farmer John }需要给整个山脊浇水,方式是用一个洒水喷头覆盖山脊上的每个位置。此外,FJ\red{FJ }不会向任何方向浇水越过山脊的末端。

FarmerJohn\red{Farmer John }N(1<=N<=1000)\red{N (1 <= N <= 1000) }头奶牛中的每一头都有她特别喜欢的三叶草范围(这些范围可能重叠)。范围由闭合区间 (S,E)\red{(S,E) }定义。每头奶 牛的首选范围必须由单个洒水器浇水,这可能会或可能不会喷洒超出给定范围。找出在不重叠的情况下浇灌整个山脊所需的最少洒水器数量。 约翰的奶他们发现山督上的特别美味的草维。

为了维持草的生长,约翰的脊椎可以看给灌器。每个喷灌器可以确定短喷程(并有B\red{B}的射程,该射程于A\red{A,}不长于B\red{B,}L1\red{L1≤}A\red{A≤}103\red{10^3)}L1\red{L1≤}A\red{A≤}103\red{10^3}正的射程内。它所在位置的喷射射程,都在要求山脊被射到,而且灌输器的每一个区域都必须有N\red{N(}1\red{1≤}N\red{N≤}103\red{10^3)} 奶牛,每一只奶牛的草区,第i\red{i}个奶牛的草区是[Si\red{[Si,}Ei]\red{Ei],}不同奶牛的草区只可以特别重叠。)现,每只牛的草区被一个喷灌 器.寻找最需要的喷灌器.

输入格式

1\red{1 }行:两个空格分隔的整数:N\red{N }L\red{L }

2\red{2 }行:两个空格分隔的整数:A\red{A }B\red{B }

3...N+2\red{3...N+2 }行:每行包含两个整数,S\red{S }E(0<=S<E<=L)\red{E (0 <= S < E <= L) }分别指定一些奶牛喜欢的范围的开始结束位置。位置以距山脊起点的距离给出,因此 在 0..L\red{0..L }范围内。

输出格式

1\red{1 }行:所需的最少洒水器数量。如果无法为 FarmerJohn\red{Farmer John }设计喷头配置,则输出 1\red{-1}

样例

输入样例

2 8
1 2
6 7
3 6

输出样例

3

提示

img