#P1809. Regetni

    ID: 810 远端评测题 3000ms 30MiB 尝试: 3 已通过: 0 难度: 10 上传者: 标签>组合数学TUD Programming Contest 2003DarmstadtGermany

Regetni

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

题目描述

背景
你好,地球人。我们来自Regetni星球,需要你的帮助来赚大钱。也许我们甚至会分你一些。

你看,问题在于我们的世界里,一切都是关于整数的。这甚至是法律规定的。不允许使用其他任何数字。既然如此,我们使用整数坐标系来规划城市也就不足为奇了。到目前为止,只出售了与坐标轴对齐的矩形地块,但我们的教授Elgnairt最近提出了一个革命性的想法,也要出售三角形地块。我们相信上流社会会喜欢这个概念,它会让我们变得富有。

不幸的是,教授为他的想法申请了专利,因此我们不能直接这样做。我们需要他的许可,而他是一个真正的科学家,在我们解决一些该死的谜题之前,他不会给我们许可。这就是你发挥作用的地方,因为我们听说你是个天才。

问题
教授的谜题是这样的:给定一些可能的三角形顶点,确定可以用它们构建多少个面积为整数的三角形。退化的三角形(即面积为0的直线)也要计算在内,因为0是一个整数。更准确地说,计算从输入点集中选择三个不同点作为顶点的三角形的数量。一个场景中的所有点都是不同的,即不会有重复的点。以下是一些示例:
示例a)展示了一个面积为整数(即3)的三角形,b)展示了一个面积为非整数的三角形,c)展示了一个退化的三角形(即面积为0,所以要计算!),d)展示了四个点,你可以选择任意三个来构建一个面积为整数的三角形,e)展示了四个点,你无法构建任何面积为整数的三角形。

提示:三角形(x1,y1),(x2,y2),(x3,y3)(x1, y1), (x2, y2), (x3, y3)的面积AA可以这样计算:
A=x1y2y1x2+x2y3y2x3+x3y1y3x1/2A = |x1y2 - y1x2 + x2y3 - y2x3 + x3y1 - y3x1| / 2
尝试巧妙地利用这个公式。

输入格式

第一行包含场景的数量。对于每个场景,有一行首先给出该场景中不同点的数量NN0N100000 \leq N \leq 10000),然后是NN对整数,每对描述一个点(xi,yi)(xi, yi),其中100000xi,yi100000-100000 \leq xi, yi \leq 100000。所有这些数字都用单个空格分隔。

输出格式

每个场景的输出以一行"Scenario #i:"开始,其中ii是从1开始的场景编号。然后打印一行,包含以给定点中三个不同点为顶点的面积为整数的三角形的数量。每个场景的输出以一个空行结束。

输入样例1

6
3 0 0 2 0 1 -3
3 0 0 2 1 1 -3
3 0 0 2 2 3 3
4 0 0 2 0 0 2 2 2
4 0 0 1 0 0 1 1 1
9 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2

输出样例1

Scenario #1:
1

Scenario #2:
0

Scenario #3:
1

Scenario #4:
4

Scenario #5:
0

Scenario #6:
48

来源

TUD Programming Contest 2003, Darmstadt, Germany