Jim 在一家铁路公司工作,负责规划一条新的旅游列车线路。他确信这条沿风景优美的山谷行驶的铁路线会大受欢迎,但并不确定受欢迎的程度会有多大。
市场调查已经完成,Jim 刚刚收到了一份乘客旅行路段的预估清单。根据这份清单,他希望估算出满足需求所需的最少列车座位数。
为所有乘客提供座位可能会导致成本过高。如果将同一个座位分配给旅行路段互不重叠的多名乘客,则可以大幅削减成本。
在座位分配方面,公司考虑了两种不同的策略。由于从列车窗户看到的风景取决于座位位置,如果乘客能够选择座位会更好。一种可能的策略(称为“策略 1”)是允许乘客在预订时从所有剩余座位中选择任意一个座位。由于预订顺序未知,在计算所需座位数时必须考虑所有可能的顺序。
另一种策略(称为“策略 2”)不允许乘客选择座位;座位分配由铁路运营商而非乘客在所有预订完成后决定。这种策略可以显著减少所需的座位数。
你的任务是通过提供一个程序来计算这两种座位预订策略下所需的座位数,从而让 Jim 了解这两种策略的区别。
考虑一个有四个车站 $S_1, S_2, S_3, S_4$ 以及四名预期乘客 $p_1, p_2, p_3, p_4$ 的案例,旅行清单如下:
| 乘客 | 出发站 | 到达站 |
|---|---|---|
| $p_1$ | $S_1$ | $S_2$ |
| $p_2$ | $S_2$ | $S_3$ |
| $p_3$ | $S_1$ | $S_3$ |
| $p_4$ | $S_3$ | $S_4$ |
$p_1$ 和 $p_2$ 的旅行路段不重叠,$p_3$ 的旅行路段与 $p_1$ 和 $p_2$ 的重叠,而 $p_4$ 的旅行路段与任何其他乘客的都不重叠。
让我们检查一下在策略 1 下两个座位是否足够。如果 $p_1$ 先预订座位,则两个座位中的任何一个都可以被选中。如果 $p_2$ 第二个预订,由于其旅行路段与 $p_1$ 不重叠,可以预订同一个座位,但另一个座位对 $p_2$ 来说可能看起来更有吸引力。如果 $p_2$ 预订了与 $p_1$ 不同的座位,那么对于 $S_1$ 到 $S_3$ 之间的 $p_3$ 来说,将没有剩余的可用座位(图 I.1)。
图 I.1. 两个座位的情况
如果有三个座位,$p_3$ 可以在 $p_1$ 和 $p_2$ 的任何座位预订组合下找到座位。$p_4$ 也可以预订座位,因为在 $S_3$ 和 $S_4$ 之间没有其他乘客(图 I.2)。
图 I.2. 三个座位的情况
对于此旅行清单,考虑到策略 1 下所有可能的预订顺序和座位偏好,只有三个座位是足够的。
另一方面,在所有预订完成后决定座位分配,使得在策略 2 下仅需两个座位即可实现紧凑分配(图 I.3)。
图 I.3. 两个座位的紧凑分配
输入格式
输入包含单个测试用例,格式如下:
$n$ $a_1 \ b_1$ $\vdots$ $a_n \ b_n$
第一行包含一个整数 $n$,即预估乘客旅行清单中的乘客数量 ($1 \le n \le 200\,000$)。车站按其沿路线的顺序从 1 开始编号。接下来的 $n$ 行中,每行通过两个整数描述每位乘客的旅行,分别为出发站编号 $a_i$ 和到达站编号 $b_i$ ($1 \le a_i < b_i \le 100\,000$)。注意,清单中可能有多名乘客具有相同的出发站和到达站。
输出格式
在一行中输出两个整数 $s_1$ 和 $s_2$,中间用空格隔开。$s_1$ 和 $s_2$ 分别是策略 1 和策略 2 下所需的座位数。
样例
样例输入 1
4 1 3 1 3 3 6 3 6
样例输出 1
2 2
样例输入 2
4 1 2 2 3 1 3 3 4
样例输出 2
3 2
样例输入 3
10 84 302 275 327 364 538 26 364 29 386 545 955 715 965 404 415 903 942 150 402
样例输出 3
6 5