#arc0182. [arc018_2]格子点と整数

[arc018_2]格子点と整数

问题文

诸君,我喜欢整数。
我喜欢格点。
我喜欢面积。
我喜欢三角形。
我特别喜欢平面上所有顶点都是格点且面积是整数的三角形。
当看到格点集合时,我就兴奋地数起了能够选择其中任意3个点并构成整数面积三角形的个数。
虽然心情很激动,但如果格点太多,数起来就很麻烦了。
因此,我希望你们这些有才华的程序员能够帮我计算。
给定N个格点,请编写一个程序,统计出可以选择其中任意3个点并构成面积为整数的三角形的个数。不要认为面积为0的三角形是三角形!
顺便一提,格点指的是坐标平面上的点(x,y)(x,y),其中xxyy都是整数。


输入

输入从标准输入中以以下格式给出。

N
x1 y1
x2 y2
:
xN yN
  • 第1行是一个整数N(3 ≦ N ≦ 100),表示格点的数量。
  • 第2行到第N行,每行包含两个整数,用空格分隔。(xi,yi)(xi, yi)表示第i个格点的位置。不会有重复的格点。(如果iji \neq j,那么(xi,yi)(xj,yj)(xi, yi) \neq (xj, yj)

输出

输出一行,表示从N个格点中选择任意3个点并构成正面积整数的三角形的数量。在输出最后要换行。


示例1


3
1 1
1 2
3 1

输出示例1


1

可以构成一个面积为1的三角形(1,1),(1,2),(3,1)(1,1),(1,2),(3,1)


示例2


3
1 1
1 2
2 1

输出示例2


0

三角形(1,1),(1,2),(2,1)(1,1),(1,2),(2,1)的面积为0.5,不是整数。除此之外无法构成其他三角形。


示例3


3
1 1
2 2
3 3

输出示例3


0

3个点处于同一条直线上,无法构成三角形。


示例4


8
3 1
4 1
5 9
2 6
5 3
5 8
9 7
9 3

输出示例4


38