loj#P2678. 「BalticOI 2010」PCB * Printed Circuit Board

「BalticOI 2010」PCB * Printed Circuit Board

题目描述

在印刷电路板中,导电线铺设在绝缘板上。同一层中的导体一旦交叉就会产生短路,所以在一些复杂的电路中,导体板需要分成多层,由绝缘材料隔开。但是,电路板层数越多越昂贵。所以,工厂希望最小化电路板需要的层数。

我们考虑用电路板连接对边上的两个点,并最小化这种电路板的成本。

例如,考虑下图左侧所示的电路板。只需要一层电路板就可以连接 A 与 B 以及 D 与 C,方案如中间所示。但是连接 A 与 C 以及 D 与 B 就不能用一层电路板完成,如右图所示。

编写一个程序,给定 W×HW \times H 电路板上 NN 个导体端点的位置,计算制造电路板所需的最小层数。

可以假设导体的宽度远小于两者之间的距离。也就是说,在任何两根电线之间,总有足够的空间容纳另一根电线。

输入格式

第一行包含 NN1N1051 \le N \le 10^5),表示电线的数量。

接下来 NN 行中的每一行都包含两个整数 Xi1X_{i1}Xi2X_{i2}0Xij1060 \le X_{ij} \le 10^6),由空格分隔,表示第 ii 个导体连接点 (Xi1,0)(X_{i1},0)(Xi2,H)(X_{i2},H)。保证输入中给出的所有 2N2N 个端点互不相同。

输出格式

输出一行一个整数,表示容纳所有电线需要的最少层数。

2
1 1
3 3
1
2
1 3
3 1
2