Triangles (Silver)

면접 대비

시간 제한1초메모리 제한512 MB

요약
N개의 점이 주어질 때, 두 변이 각각 x축과 y축에 평행한 모든 직각삼각형의 넓이의 두 배 합을 1e9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 6점

유형
수학, 기하, 조합론, 해시맵
정답자
아직 제출이 없습니다

문제

Farmer John은 소를 위한 삼각형 목초지를 만들려고 한다.

그의 농장을 나타내는 2D 지도 위에 서로 다른 점 (X1,Y1)…(XN,YN)(X_1, Y_1) \ldots (X_N, Y_N)에 NN개의 울타리 기둥이 있다 (3≤N≤1053\le N\le 10^5). 이 중 세 개를 골라 삼각형 목초지의 꼭짓점으로 삼을 수 있는데, 삼각형의 한 변이 xx축에 평행하고 다른 한 변이 yy축에 평행해야 한다.

FJ가 만들 수 있는 모든 목초지의 넓이의 합은 얼마인가?

입력

첫째 줄에 NN이 주어진다.

다음 NN개의 줄에는 각각 두 정수 XiX_i와 YiY_i가 주어지며, 각 값은 −104-10^4 이상 10410^4 이하이다. 이는 울타리 기둥의 위치를 나타낸다.

출력

넓이의 합은 정수가 아닐 수도 있고 매우 클 수도 있으므로, 넓이의 합의 두 배를 109+710^9+7로 나눈 나머지를 출력한다.

힌트

울타리 기둥 (0,0)(0,0), (1,0)(1,0), (1,2)(1,2)는 넓이 11인 삼각형을 만들고, (0,0)(0,0), (1,0)(1,0), (0,1)(0,1)은 넓이 0.50.5인 삼각형을 만든다. 따라서 답은 2⋅(1+0.5)=32\cdot (1+0.5)=3이다.

예제1

  1. 예제 1

    입력
    4
    0 0
    0 1
    1 0
    1 2
    
    예상 출력
    3