#U1920FS2. Triangles
Triangles
Farmer John 想要给他的奶牛们建造一个三角形牧场。有 N(3≤N≤10)个栅栏柱子分别位于农场的二维平面上不同的点 (X,Y)…(X,Y)。他可以选择其中三个点组成三角形牧场,只要三角形有一条边与x 轴平行,且有另一条边与 y 轴平行。
FJ 可以组成的所有可能的牧场的面积之和等于多少?
测试点性质:
- 测试点 2 满足 N=200。
- 测试点 3-4 满足 N≤5000。
- 测试点 5-10 没有额外限制。
输入格式(文件名:triangles.in):
第一行包含N。以下 N 行每行包含两个整数 Xi 和 Yi,均在范围 −10…10 之内,描述一个栅栏柱子的位置。
输出格式(文件名:triangles.out):
由于面积之和不一定为整数且可能非常大,输出面积之和的两倍模 10+7 的余数。
输入样例:
4
0 0
0 1
1 0
1 2
输出样例:
3
栅栏木桩 (0,0)、(1,0) 和 (1,2) 组成了一个面积为 1 的三角形,(0,0)、(1,0) 和 (0,1) 组成了一个面积为 0.5 的三角形。所以答案为 2⋅(1+0.5)=3。