摩尔定律指出,芯片上的晶体管数量每两年就会翻一番。令人惊叹的是,这条定律在过去半个多世纪里一直成立。每当现有技术不再允许进一步增长时,研究人员就会提出新的制造技术,以将电路封装得更加密集。在不久的将来,这意味着芯片可能会在三维空间而非二维空间中构建。但对于本题而言,二维空间已经足够了。
所有二维硬件设计(例如芯片、显卡、主板等)中一个常见的问题是布线。当导线在硬件上布线时,如果它们必须相互交叉,就会产生问题。当发生交叉时,必须使用特殊的装置来允许两条电线相互跨越,这会增加制造成本。
我们的问题如下:给定一个已经布好若干导线的硬件设计(所有导线均为直线段)。同时给定需要连接的新导线的起点和终点。你需要确定为了连接起点和终点,最少需要跨越多少条现有的导线。这条连接线不必是直线。唯一的限制是它不能在两条或多条导线已经汇合或相交的点处交叉。
图 L.1:第一个样例输入
图 L.1 展示了第一个样例输入。八条现有的导线形成了五个正方形。新连接的起点和终点分别位于最左侧和最右侧的正方形中。黑色虚线表示直接连接会跨越四条导线,而最优解仅跨越两条导线(蓝色曲线)。
输入格式
输入包含一组测试用例。第一行包含五个整数 $m, x_0, y_0, x_1, y_1$,分别表示预先存在的导线数量($m \le 100$)以及需要连接的起点和终点坐标。接下来有 $m$ 行,每行包含四个整数 $x_a, y_a, x_b, y_b$,描述一条从 $(x_a, y_a)$ 到 $(x_b, y_b)$ 的非零长度现有导线。每个输入坐标的绝对值小于 $10^5$。每对导线最多只有一个公共点,即导线不会重叠。新导线的起点和终点不在任何预先存在的导线上。
输出格式
输出连接起点和终点所需跨越的导线的最少数量。
样例
样例输入 1
8 3 3 19 3 0 1 22 1 0 5 22 5 1 0 1 6 5 0 5 6 9 0 9 6 13 0 13 6 17 0 17 6 21 0 21 6
样例输出 1
2
样例输入 2
1 0 5 10 5 0 0 10 10
样例输出 2
0