#C05TL06P06. C05T.L06.实战训练六.题目6.画圆

C05T.L06.实战训练六.题目6.画圆

题目描述

小明有 n 个点,编号为 1∼n ,编号为 i 的点的坐标为 (xi,yix_i , y_i)。小明想画一些圆,每个圆都以圆点 ( 0 , 0 ) 为圆心,且经过某个小明拥有的点,每个圆的半径不相等。假设点 ( x,y ) 到圆心 ( 0 , 0 ) 的距离为半径 r ,则必然存在 r2r^2 = x2x^2 + y2y^2 。小明希望按照圆的半径由小到大来画圆,所以他会先画半径最小的圆。当小明画第 p 个圆的时候,若这个圆经过的点的编号为 q ,则小明需要花费 r2(p+q)r^2*(p+q) 的精力。若两个圆的半径相等,为了节省精力,小明只会画编号较小的那个圆。求按这样的画法,小明需要花费的总精力。

输入格式

第一行,包含一个整数 n ( 1 ≤ n ≤ 10510^5 )。

接下来 n 行,每行包含两个整数( xi,yix_i , y_i ) ( 1 ≤ xi,yix_i , y_i10610^6 ) 表示第 i 个点的坐标。

数据范围

对于 60% 的数据 , 1 ≤ n≤ 10310^3 , 1 ≤ xi,yix_i , y_i10310^3

对于 100% 的数据 , 1 ≤ n ≤ 10510^5 , 1 ≤ xi,yix_i , y_i10610^6

输出格式

1 个整数,表示小明需要花费的总精力。

由于答案可能很大,只需要输出答案对 10910^9+7 取模的结果。

样例

4
1 2
2 1
1 3
2 2
118

样例解释

编号为 1 的点,坐标为(1,2),则经过此点的圆的半径r,满足 r2r^2 = 1*1+2*2=5

编号为 2 的点,坐标为(2,1),则经过此点的圆的半径r,满足 r2r^2=2*2+1*1=5

编号为 3 的点,坐标为(1,3),则经过此点的圆的半径r,满足 r2r^2=1*1+3*3=10

编号为 4 的点,坐标为(2,2),则经过此点的圆的半径r,满足 r2r^2=2*2+2*2=8

已知小明按照半径由小到大画圆,所以:

第 1 个圆经过编号 1 ,其半径满足 r2r^2=5,耗费的精力为 5*(1+1)=10,

第 2 个圆经过编号 4 ,其半径满足 r2r^2=8,耗费的精力为 8*(2+4)=48,

第 3 个圆经过编号 3 ,其半径满足 r2r^2=10,耗费的精力为 10*(3+3)=60,

所以小明总共绘制了 3 个圆,并且花费的总精力为 118