atcoder#ARC076D. [ARC076F] Exhausted?

[ARC076F] Exhausted?

题目描述

椅子が M M 個数直線上に並んでおり、i i 番目の椅子 (1  i  M) (1\ ≦\ i\ ≦\ M) は座標 i i にあります。

高橋君が N N 人います。高橋君たちはゲームのやりすぎで全員腰を痛めたため、どこかの椅子に座る必要があります。 各々の高橋君たちが座る椅子にはこだわりがあって、i i 人目の高橋君は座標 Li L_i 以下、もしくは座標 Ri R_i 以上の椅子に座りたいです。当然ながら、同じ椅子には 1 1 人しか座れません。

このままでは、高橋君たち全員を椅子に座らせることができないかもしれません。 高橋君たちの健康管理に気を遣っている青木君は、椅子をできるだけ少ない数追加することで、 高橋君たち全員のこだわりを満たすように高橋君たちを椅子に座らせることができるようにしたいです。

椅子は、任意の実数座標に追加できます。追加する必要のある椅子の最小の個数を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M L1 L_1 R1 R_1 : : LN L_N RN R_N

输出格式

追加する必要のある椅子の最小の個数を出力せよ。

题目大意

mm 个椅子在数轴上排列,第 ii 张椅子的坐标为i。

高桥君和他的朋友一共有 nn 个人。高桥君他们因为玩了太久的游戏,大家的腰和背都很痛,所以他们很有必要坐在椅子上休息一下。

高桥君他们每个人坐的椅子的坐标都很讲究,第 ii 个人想坐在坐标在 lil_i 以下(包括 lil_i)的椅子上,或者坐在坐标在 rir_i 以上(包括 rir_i)的椅子上。当然,一个的椅子只能坐一个人。

可这样计算下去,可能会让他们不能都坐在椅子上休息。青木君关心高桥君他们的健康,尽可能多地增加椅子,让高桥君他们都能够坐在椅子上休息。 椅子可以添加到任意的实数坐标上,请求出需要添加椅子数量的最小值。

输入输出格式

输入

第一行输入两个数 nnmm

接下来的第二行到 n+1n+1 行依次输入 lil_irir_i

输出

输出需要添加的椅子数量的最小值

数据范围

1N,M2×1051 \leq N,M \leq 2\times 10^50li<riM+10\leq l_i < r_i \leq M+1。所有的数都是整数

样例解释

样例一:

44 个人依次坐在坐标为 3,2,1,43, 2, 1, 4 的椅子上,所以椅子不需要添加。

样例二:

如果将椅子添加到坐标 0077,则可以将 77 人按顺序放在坐标 0,5,3,2,6,1,70, 5, 3, 2, 6, 1, 7 中。

4 4
0 3
2 3
1 3
3 4
0
7 6
0 7
1 5
3 6
2 7
1 6
2 6
3 7
2
3 1
1 2
1 2
1 2
2
6 6
1 6
1 6
1 5
1 5
2 6
2 6
2

提示

制約

  • 1  N,M  2 × 105 1\ ≦\ N,M\ ≦\ 2\ ×\ 10^5
  • 0  Li < Ri  M + 1(1  i  N) 0\ ≦\ L_i\ <\ R_i\ ≦\ M\ +\ 1(1\ ≦\ i\ ≦\ N)
  • 入力は全て整数である

Sample Explanation 1

4 4 人の高橋君を順に座標 3,2,1,4 3,2,1,4 にある椅子に座らせることができるため、椅子を追加する必要はありません。

Sample Explanation 2

座標 0 0 2.5 2.5 に椅子を追加すれば、7 7 人の高橋君を順に座標 0,5,3,2,6,1,2.5 0,5,3,2,6,1,2.5 に座らせることができます。