CF31C Schedule
题目描述
在新学期开始时,Berland State University 有了一份新的课程表。根据这份课程表,有 $n$ 个小组要在 31 号教室上课。对于每个小组,已知其课程的开始时间和结束时间。事实证明,不可能让所有小组都顺利上课,因为有些小组的上课时间段发生了重叠。如果某一时刻一个小组刚好下课,另一个小组刚好开始上课,则他们的课程时间不算重叠。
现在,院长希望取消某一个小组的课程,使得剩下的小组的课程时间段两两没有重叠。你需要找出所有可能这样取消的方案。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 5000$),表示在 31 号教室上课的小组数。接下来有 $n$ 行,每行包含两个整数 $l_{i}$ 和 $r_{i}$($1 \leq l_{i} < r_{i} \leq 10^{6}$),表示第 $i$ 个小组上课的开始和结束时间。可能一开始所有小组的课程时间段就没有重叠(参见样例 1)。
输出格式
输出一个整数 $k$,表示可以通过取消恰好一个小组的课程,使得剩下的小组课程时间段两两没有重叠的方案数。第二行输出 $k$ 个数字,表示可以被取消的这些小组的编号。小组按照输入顺序从 $1$ 开始编号,输出时按递增顺序排列。
说明/提示
由 ChatGPT 5 翻译