P10762 [BalticOI 2024] Fire
题目背景
翻译自 [BalticOI 2024 Day2 T1](https://boi2024.lmio.lt/tasks/d2-fire-statement.pdf)。
题目描述
我们将一天划分为 $M$ 个时间,同时有 $N$ 个人,每个人愿意工作的时间段为 $[s_i,e_i)$,如果 $s_i > e_i$,说明这个人愿意工作到第二天的 $e_i$ 时间,每个人最多连续工作时间不会超过一整天。
你需要安排一些人工作,使得他们工作时间可以覆盖一整天,请求出这个人数。
输入格式
第一行一个整数 $N,M$。
接下来 $N$ 行,每行一对 $(s_i,e_i)$。
输出格式
输出一个数,表示多少要安排的人数,如果无法安排人数使得一天的时间被覆盖,输出 $-1$。
说明/提示
对于第一组样例,选择 $1,2,4$。
对于第二组样例,显然无解。
| 子任务编号 | 特殊性质 | 分值 |
| :-----------: | :----------- | :-----------: |
| $1$ | $N \leq 20$ | $14$ |
| $2$ | $N \leq 300$ | $17$ |
| $3$ | $N \leq 5000$ | $9$ |
| $4$ | 保证 $s_i < e_i$ 或 $e_i = 0$ | $13$ |
| $5$ | 保证每个人工作的时间相同 | $21$ |
| $6$ | 无特殊性质 | $26$ |
对于所有数据,$1 \leq N \leq 2 \times 10^5$,$2 \leq M \leq 10^9$,$0 \leq s_i,e_i < M$,$s_i \ne e_i$。