你受雇于围栏建筑公司,担任临时员工,任务是完成一个场地的围栏设计。每道围栏必须在两根电线杆之间呈直线连接。每根电线杆占据一个点,且每根电线杆的位置是固定的。任意三根电线杆不在同一直线上。围栏之间不能相交,除非是在它们的端点(电线杆)处。
该设计由他人开始,但他在添加了恰好两道围栏后退出了项目。你需要完成他的设计。为了给老板和客户留下深刻印象,你希望设计中包含尽可能多的围栏,而不考虑它们的长度。
给定电线杆的位置和已经建好的围栏,请找到一种方法,在不使任何一对围栏(新加的或现有的)相交(端点处除外)的前提下,添加尽可能多的围栏。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含一个整数 $N$,表示电线杆的数量。接下来有 $N$ 行,第 $i$ 行包含两个整数 $X_i$ 和 $Y_i$,表示第 $i$ 根电线杆的坐标。每个测试用例的最后两行表示现有的两道围栏。这两行每行包含两个整数 $P_k$ 和 $Q_k$,表示第 $k$ 道现有围栏连接在第 $P_k$ 根和第 $Q_k$ 根电线杆之间(电线杆从 $1$ 开始编号)。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是可以添加到设计中的最大围栏数量(不包括现有的围栏)。然后,输出 $y$ 行。每行必须包含两个不同的整数 $i$ 和 $j$(均在 $1$ 到 $N$ 之间,包含边界),表示连接第 $i$ 根和第 $j$ 根电线杆的一道新围栏。任何一对围栏(包括现有围栏和新添加的围栏)不得重叠,除非是在它们的端点处。
数据范围
$1 \le T \le 50$ $-10^9 \le X_i \le 10^9$,对于所有 $i$。 $-10^9 \le Y_i \le 10^9$,对于所有 $i$。 $(X_i, Y_i) \neq (X_j, Y_j)$,对于所有 $i \neq j$。 $1 \le P_k < Q_k \le N$,对于所有 $k$。 现有围栏不相交,除非是在它们的端点处。 任意三根电线杆不在同一直线上。
样例
样例输入 1
2 4 0 0 0 1 1 1 1 0 1 2 3 4 5 0 0 0 1 1 1 1 0 2 3 1 2 3 5
样例输出 1
Case #1: 3 1 4 2 3 4 2 Case #2: 6 5 4 2 4 5 2 1 4 4 3 3 2
说明
下图展示了给定样例中的电线杆和围栏。带有较宽蓝线的围栏是现有的围栏,其余部分展示了样例输出中添加最大数量围栏的方法。