#Lutece2665. 小兔养马 Ⅱ

小兔养马 Ⅱ

Migrated from Lutece 2665 小兔养马 Ⅱ

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

小兔的农场上有 nn 匹马,小兔想把这些马用栅栏围起来。不过小兔最近不缺钱,因此他不打算用花费最小的方法修筑栅栏。

小兔修筑栅栏的策略如下。我们可以把农场看作一个二维坐标平面,小兔站定在坐标原点,而马则处在各个不同的坐标点。把小兔的视线看作一条射线,小兔从某个方向开始扫视一周,将出现在视线里马的位置依次记录下来。如果某一时刻小兔的视线里出现多匹马,则只记录离小兔最远的马的位置。最后,将记录下来的位置依次用线段连接,并且首尾相连,各条线段则对应各条栅栏。

每条栅栏的花费为其长度的平方,小兔想知道这种策略修筑栅栏的花费是多少。由于答案可能很大,请输出答案对 998244353998244353 取模的结果。

Input

第一行为一个整数 n (3n2×105)n\ (3 \le n \le 2\times10^5),表示马的数量。

接下来 nn 行,每行两个整数 x,y (1018x,y1018)x,y\ (-10^{18} \le x,y \le 10^{18}),表示一匹马的坐标。

数据保证马的坐标互不相同,不会出现所有马在同一直线上的情况,且不会有马出现在原点。数据保证在这种策略下所有的马都可以被围在栅栏中。

Output

输出修筑栅栏的花费对 998244353998244353 取模的结果。

Samples

4
1 1
-1 -1
1 -1
-1 1
16

Resources

2021 UESTC ICPC Training for Math and Geometry