#P16603. [GCPC2021]Joined Sessions
[GCPC2021]Joined Sessions
题目描述
Lucy 非常懒。她的老板让她参加一个会议活动,并希望她尽可能多参加其中的会议。然而 Lucy 并不想参加太多,因此她会选择一些会议,使得所有其他会议都与她所选择的至少一个会议时间重叠。这样一来,老板就无法抱怨,因为剩余的每一场会议都与她已经选择的某场会议冲突。
阅读日程安排后,Lucy 发现即使采用这种策略,她仍然需要参加相当多的会议。幸运的是,她的好友 Max 是活动组织者之一,并且恰好负责安排时间表。
Max 不能取消会议,也不能调整会议时间,但可以通过另一种方式帮助 Lucy。
由于会议通常很无聊,即使会议中途更换议题,也不会有人特别注意。因此,只要两场会议的时间有重叠,Max 就可以将它们合并成一场会议。
设会议 和 的开始、结束时间分别为 和 。如果
$$\operatorname{start}(a)\le \operatorname{start}(b)\le \operatorname{end}(a),$$或者交换 后上述条件成立,则称两场会议重叠。
将会议 合并后,新会议的开始和结束时间分别为
$$\min(\operatorname{start}(a),\operatorname{start}(b))$$和
$$\max(\operatorname{end}(a),\operatorname{end}(b))。$$Max 可以反复进行合并,也可以继续将已经合并得到的会议与其他会议合并。但两场不重叠的会议不能直接合并,否则人们会发现时间表被篡改。
Lucy 想知道,能否通过这些操作减少她至少需要参加的会议数量。如果可以,至少要进行多少次合并,才能使这个最小数量至少减少 ?
输入格式
输入包含:
- 第一行一个整数 (),表示会议数量。
- 接下来 行,每行两个整数 (),表示一场会议的开始时间和结束时间。
输出格式
如果可以减少 Lucy 至少需要参加的会议数量,输出所需合并操作的最小次数。
否则输出:
impossible
样例 1
输入
4
1 3
2 5
4 7
6 9
输出
1
样例 2
输入
5
1 3
4 7
8 10
2 5
6 9
输出
2
样例 3
输入
3
1 2
2 3
3 4
输出
impossible