#arc045b. [arc045_b]ドキドキデート大作戦高橋君
[arc045_b]ドキドキデート大作戦高橋君
问题描述
在高桥君所在的学校里要进行大扫除。学校里有 N 个教室,每个教室从 1 到 N 编号,并从左到右排列。
高桥君的学校有 M 名学生,已经确定了 M 个连续的教室区间(称为扫除区间),但尚未确定谁负责清扫这些区间。不同的学生被分配了不同的扫除区间,被分配的学生必须清扫其中的所有教室。一个教室可能包含多个扫除区间。
高桥君意识到在大扫除那天他和一个女孩有约会。他决定逃避大扫除,因为他不知道逃避会发生什么。正如前面所述,由于某些教室可能包含多个扫除区间,他意识到只要有人清扫了所有教室,他就可以逃避自己的任务而不被察觉。只有在还有未清扫的教室时,逃避大扫除的事情才会被揭露。
你的任务是为高桥君找出所有他可以逃避而不会被察觉的扫除区间。
值得注意的是,除了高桥君之外,其他学生都很认真,因此请假设除了高桥君之外没有其他学生逃避扫除任务。
输入
输入以以下格式从标准输入获取:
N M
s1 t1
s2 t2
:
sM tM
- 第一行包含两个整数 N 和 M,分别表示教室数量和学生数量。 ,。
- 接下来的 M 行给出了 M 个扫除区间。在第 i 行中,给出了第 i 个扫除区间的两个整数 和 。这表示当一个学生被分配到该扫除区间时,他必须清扫满足 的所有教室 x。
- 可能会给出相同的区间多次。
任何教室至少包含一个扫除区间。
输出
输出结果应该以以下格式发送到标准输出:
在第一行输出一个整数 k,表示可以逃避的扫除区间的数量。
接下来的 k 行,按升序输出可以逃避的扫除区间的编号,每行以换行符分隔。最后一行也要换行。
示例1
输入示例1
10 5
1 4
5 5
6 8
9 10
5 6
输出示例1
2
2
5
当高桥君被分配到第 2 和第 5 个扫除区间时,他可以逃避。具体来说:
- 如果他被分配第 2 个扫除区间,由于第 5 个扫除区间包含教室 5,所以他不会被揭露。
- 如果他被分配第 5 个扫除区间,由于第 2 个扫除区间包含教室 5,且第 3 个扫除区间包含教室 6,所以他不会被揭露。
另一方面,如果高桥君被分配第 1、3 或 4 个扫除区间,逃避大扫除就会被发现。具体来说:
- 如果他被分配第 1 个扫除区间,由于教室 1、2、3 和 4 还没有被清扫,所以他会被发现。
- 如果他被分配第 3 个扫除区间,由于教室 7 和 8 还没有被清扫,所以他会被发现。
- 如果他被分配第 4 个扫除区间,由于教室 9 和 10 还没有被清扫,所以他会被发现。
示例2
输入示例2
3 6
1 1
1 1
2 2
2 2
3 3
3 3
输出示例2
6
1
2
3
4
5
6
无论选择哪个扫除区间,高桥君都可以逃避。
示例3
输入示例3
10 3
1 4
2 6
6 10
输出示例3
0
可能会出现没有任何扫除区间可以逃避的情况。