#P1921. Paper Cut

Paper Cut

本题没有可用的提交语言。

描述 还记得我们童年玩过的那些游戏吗?折纸和剪纸一定是最受欢迎的游戏之一。聪明的孩子们总是会在玩剪纸这类游戏时探索新的东西。现在,聪明的女孩卡罗尔让她的哥哥迈克解决一个谜题。然而,和往常一样,迈克找不到解决方案,于是向你求助。

卡罗尔的谜题描述起来很简单。她以某种方式折叠纸张,然后用刀切割折叠后的纸张。迈克需要做的是说出切割后纸张会变成多少片。为了消除歧义,我们可以将纸张坐标设为 [0,1]×[0,1][0,1]×[0,1]

,左下角坐标为 (0,0)(0,0) 。一次折叠由折线上的两个点 (x1,y1)(x1,y1)(x2,y2)(x2,y2) 表示,折线的方向由从 (x1,y1)(x1,y1)(x2,y2)(x2,y2) 确定。卡罗尔总是相对于给定的有向折线从左向右折叠纸张(见图 1)。切割由切割线上的两个点确定。请注意,用于确定折叠或切割的点不一定在纸张上。 输入 输入的第一行包含一个整数 tt ,表示测试用例的数量。接下来是 tt 个测试用例。对于每个测试用例,第一行包含一个整数 NN0N200≤N≤20 ),表示折叠次数,接下来的 NN 行给出每条折线上的两个点,格式为 x1,y1,x2,y2x1,y1,x2,y2 。接下来的一行以同样的方式给出切割线上的两个点。

输出 对于每个测试用例,输出一行,包含切割后纸张变成的片数。

输入数据 1 2 1 0 0.5 1 1 0.5 0 0.5 1 1 0 0.5 1 1 0 0.4 1 0.4 输出数据 1 2 3