[Usaco2009 Open]牛绣花cowemb
Bessie 学会了刺绣这种精细的工作。牛们在一块半径为 的圆形布上绣花。它们一共绣了 条直线,每条直线连接圆形布边缘上的两个点,并且没有两条直线经过边缘上的同一个点。
作为一只热爱数学的牛,Bessie 知道每条直线的方程为 ,其中 、 和 均为整数,且没有两条直线完全重合。不幸的是,有些直线并不穿过圆形布的内部。
圆形布的圆心为原点 ,边界上所有点到原点的距离均为 。对于奶牛来说,刺绣作品中直线的交点越多,作品便越有价值。请帮助 Bessie 计算所有在圆形布内部相交的直线对数,也就是说,交点到原点的距离小于 的直线对数。
注意,如果有 条直线在圆内同一点相交,则应计为 对;如果有 条直线共点,则应计为 对。
输入格式
第一行包含两个用空格分隔的整数 和 。
接下来 行,每行包含 个整数 、 和 ,表示一条直线的方程 。
输出格式
输出一个整数,表示在圆形布内部相交的直线对数。
样例输入
2 1
1 0 0
0 1 0
样例输出
1
样例解释
输入说明:
两条直线x=0和y=0.
两条直线在点 相交,显然该点到原点的距离小于 。
数据范围
- ;
- ;
- ;
- ;
- ;
- 每条直线满足 、 中至少有一个非零;
- 没有两条直线完全重合;
- 没有两条直线经过圆形布边缘上的同一个点。
来源与许可
本题为 USACO 2009 Open 试题「Cow Embroidery」,题面与测试数据整理自 BZOJ 1573。
样例 1
输入
2 1
1 0 0
0 1 0
输入说明:
两条直线x=0和y=0.
输出
1