#43965. 画圆

画圆

暂无测试数据。

蒜头君有 $n$ 个点,编号为 $1 \sim n$ ,编号为 $i$ 个点的坐标为 $(x_i, y_i)$ ,蒜头君想画 $n$ 个圆,每个圆都是以圆点 $(0, 0)$ 为圆心的,每个圆分别过这 $n$ 个点中的一个。要求圆与圆不重叠,当然保证蒜头君的 $n$ 个点到原点的距离也各不相同。

蒜头君希望由小到大画这些圆,所以他会先画半径最小的圆,再画半径第二小的圆,以此类推。

当蒜头君画第 $i$ 个圆的时候,设这个圆经过的点的编号为 $j$ ,则蒜头君需要花费这个圆半径的平方乘 $(i + j)$ 的精力。

求按这样画法,蒜头君需要花费的总精力。

输入格式

输入第一行,包含一个整数 $n(1 \leq n \leq 10 ^ 5)$ 。

接下来 $n$ 行,每行包含两个整数 $(x_i, y_i)(1 \leq x_i, y_i \leq 10 ^ 6)$ 表示第 $i$ 个点的坐标,保证任意两点距离原点的距离不同。

输出格式

输出一行,包含 $1$ 个整数,表示蒜头君需要花费的总精力。

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

数据范围

对于 $60\%$ 的数据,$1 \leq n \leq 10 ^ 3, 1 \leq x_i, y_i \leq 10 ^ 3$

对于 $100\%$ 的数据,$1 \leq n \leq 10 ^ 5, 1 \leq x_i, y_i \leq 10 ^ 6$

3
1 2
1 3
2 2
100