时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
切线是计算几何中至关重要的一个定义。一条直线

是正方形

的切线,当且仅当以下两个条件成立:
1. 正方形

至少有一个点在直线

上。
2. 在直线

所划分的两个半平面(即两侧)中,有一个半平面不存在来自正方形

的点。
公切线则是多个图形共有的切线。在一般的几何题中,总会涉及到两个圆的公切线,但却对其它图形的公切线很少提及。本题给定了两个边长相同的正方形,保证两者交集的面积为

。请问两个正方形共有多少个公切线?
输入描述:
本题采用多组数据。
第一行输入一个整数
,代表数据组数。
接下来
行,每行输入八个整数,
。所有坐标的范围为
。其中点
和点
是第一个正方形中一条对角线的两端点,点
和点
是第二个正方形中一条对角线的两端点。
数据保证两个正方形的边长相等,且两者交集的面积为
。
输出描述:
对于每一组数据输出一行。如果两个正方形存在无数条公切线,输出“Infinity”(不带引号);否则输出公切线的数量。
示例1
输入
复制
2
0 0 2 2 1 2 3 4
0 0 10 0 8 2 16 8