CF589F Gourmet and Banquet

题目描述

一位美食家来到宴会大厅,厨师们为宾客准备了 $n$ 道菜肴。美食家清楚每道菜的上菜时间表:他知道每道菜被端上和撤下的确切时间。 对于第 $i$ 道菜,他知道两个整数时刻 $a_{i}$ 和 $b_{i}$(从宴会开始计时,单位为秒)——第 $i$ 道菜是在 $a_{i}$ 时刻被端上,而在 $b_{i}$ 时刻被撤下($a_{i}< b_{i}$)。例如,如果 $a_{i}=10$ 且 $b_{i}=11$,那么第 $i$ 道菜可以品尝的时间仅有一秒。 菜肴的数量非常充足,因此只要这道菜仍然可供应(也就是还在大厅中),它就不会被吃完。 美食家想要尝遍所有 $n$ 道菜,以免得罪任何一位厨师。因此,他希望每道菜都品尝相同的时间。在品尝过程中,他可以在任意整数时刻之间立即切换要吃的菜肴。每个时刻他只能品尝一道菜,可以在之后再返回继续品尝某一道菜。 美食家希望在不违反上述条件的前提下,在宴会上能尽量长时间地进餐。你能帮他计算出他最多能在宴会上吃的总时间吗?

输入格式

输入的第一行为一个整数 $n$($1 \leq n \leq 100$),表示宴会上的菜肴数量。 接下来的 $n$ 行,每行包含两个整数 $a_{i}$ 和 $b_{i}$($0 \leq a_{i} < b_{i} \leq 10000$),表示第 $i$ 道菜被端上和撤下的时刻。

输出格式

输出一个整数,表示美食家在宴会上最多可以吃的总时间。 美食家可以在任意整数时刻立即切换菜肴,也可以在吃完一道菜后回到已吃过的其它菜肴。在任意时刻,他最多只能吃一道菜。

说明/提示

在第一个示例中,美食家先吃第 2 道菜 1 秒(从时刻 1 到 2),然后吃第 1 道菜 2 秒(从 2 到 4),再回到第 2 道菜 1 秒(从 4 到 5),最后吃第 3 道菜 2 秒(从 6 到 8)。 在第二个示例中,美食家无法保证每道菜都至少吃 1 秒,因为有三道菜但它们都只在 1 到 2 秒这 1 秒内可以品尝。 由 ChatGPT 5 翻译