Problem4901--画圆

4901: 画圆

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

现在有 nnn 个点,编号为 1∼n1 \sim n1n ,编号为 iii 个点的坐标为 (xi , yi )(x_i ,  y_i )(xi , yi ) ,我们想画 nnn 个圆,每个圆都是以圆点 (0,0)(0, 0)(0,0) 为圆心的,每个圆分别过这 nnn 个点中的一个。要求圆与圆不重叠,当然保证 nnn 个点到原点的距离也各不相同。
我们希望由小到大画这些圆,所以会先画半径最小的圆,再画半径第二小的圆,以此类推。
当画第 iii 个圆的时候,设这个圆经过的点的编号为 jjj ,则需要花费这个圆半径的平方乘 (i+j)(i + j)(i+j) 的精力。
求按这样画法,需要花费的总精力。

Input

输入第一行,包含一个整数 n(1≤n≤105)n(1 \leq n \leq 10 ^ 5)n(1n105)
接下来 nnn 行,每行包含两个整数 (xi,yi)(1≤xi,yi≤106)(x_i, y_i)(1 \leq x_i, y_i \leq 10 ^ 6)(xi,yi)(1xi,yi106) 表示第 iii 个点的坐标,保证任意两点距离原点的距离不同。

Output

输出一行,包含 111 个整数,表示需要花费的总精力。
由于答案可能很大,只需要输出答案对 109+710 ^ 9 + 7109+7 取模的结果。

Sample 1 Input

3
1 2
1 3
2 2

Sample 1 Output

100

HINT

【数据范围】
对于 60%60\%60% 的数据,1≤n≤103,1≤xi,yi≤1031 \leq n \leq 10 ^ 3, 1 \leq x_i, y_i \leq 10 ^ 31n103,1xi,yi103
对于 100%100\%100% 的数据,1≤n≤105,1≤xi,yi≤1061 \leq n \leq 10 ^ 5, 1 \leq x_i, y_i \leq 10 ^ 61n105,1xi,yi106

Source/Category

基础算法 4.7.排序