Farmer John 想要给他的奶牛们建造一个三角形牧场。有 N 个栅栏柱子分别位于农场的二维平面上不同的点 (X_1,Y_1)…(X_N,Y_N) 。
他可以选择其中三个点组成三角形牧场,只要三角形有一条边与 x 轴平行,且有另一条边与 y 轴平行。
FJ 可以组成的所有可能的牧场的面积之和等于多少?
第一行包含 N 。
以下 N 行每行包含两个整数 X_i 和 Y_i ,均在范围 −10^4…10^4 之内,描述一个栅栏柱子的位置。
由于面积之和不一定为 int 整数且可能非常大,输出面积之和的两倍模 10^9+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。
测试点 1-4 满足 N=200 。
测试点 5-6 满足 N≤1000 。
测试点 7-8 满足 N≤5000 。
测试点 9-10 满足 3≤N≤10^5