UVA862 Origami

题目描述

## 折纸 桌上有一张边界平行于坐标轴的正方形纸片,左下角的坐标为 $\left(0,0\right)$ ,右上角的坐标为 $\left(100,100\right)$。接下来执行 $n$ 条折纸命令。每条命令用两个不同点 $P_1\left(x_1,y_1\right),P_2\left(x_2,y_2\right)$ 来表示,执行时把当前的折纸作品沿着 $P_1P_2$ 所在直线折叠,并把有向线段 $P_1P_2$ 的右边折向左边(左边的部分保持不变)。 折叠结束后,需要在作品上打一个孔,然后用绳子穿起来挂在墙上。孔的位置是相当重要的:若需要穿过太多层的纸,打孔本身比较困难;若穿过的层数太少,悬挂起来以后作品可能会被撕破。为了选择一个比较合适的打孔位置,你需要计算在每个候选位置打孔时穿过的层数。如果恰好穿过某一层的边界(误差 $0.000001$ 内),则该层不统计在结果中。 本题考虑一个简化的模型:纸的厚度不计,因此折纸操作总能完美执行。 每个候选位置输出一行,包含一个整数,即该位置打孔时穿过的层数。

输入格式

第 $1$ 行,一个整数表示有多组数据,这一行和其他每组数据之间都有一行为空,对于每组数据: 输入第一行为一个整数 $n (n\le 8)$,即折纸的次数,以下 $n$ 行每行四个实数 $x_1,y_1,x_2,y_2$ ,表示每次折纸时对应的有向线段。 下一行包含一个正整数 $m$,即候选位置的个数,以下每行包含两个实数 $x,y$,表示一个候选位置。

输出格式

![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA862/a981105fc884328272226900087bbdb502558528.png)