#156. 「Cleaning Shifts」 清理班次

「Cleaning Shifts」 清理班次

农民约翰正在指挥他的N头牛进行清理工作。

他将一天划分为了T个班次(1~T)。

每头牛都只能在一天中的某一个时间段内进行不间断的工作。

你需要帮助约翰排列出一个合理的奶牛的清理班次,使得每个班次都有奶牛在进行清理,而且动用的奶牛数量可以尽可能的少。

输入格式

第1行:两个空格隔开的整数N和T。

第2..N+1行:第i+1行包含两个整数,分别表示第i头牛可以进行工作的开始时间和结束时间。

输出格式

输出一个整数,表示在每个班次都有奶牛清理的情况下,所需的奶牛最小数量。

如果无法做到每个班次都有奶牛清理,则输出-1。

数据范围

1N250001 \le N \le 25000,
1T1061 \le T \le 10^6

输入样例:

3 10
1 7
3 6
6 10

输出样例:

2

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解