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$。