아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

이상적인 도시

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

요약
구멍 없는 단순 연결 폴리오미노를 이루는 N개 칸이 주어질 때, 모든 쌍의 격자 최단 거리 합을 10억으로 나눈 나머지를 구한다.
난이도

어려움10점 중 9점

유형
그래프, BFS, 기하, 수학
정답자
아직 제출이 없습니다

문제

당대의 많은 이탈리아 과학자와 예술가처럼, 다빈치는 도시 계획과 디자인에 큰 관심을 가지고 있었다. 그는 편안하면서도 공간을 넓고 합리적으로 사용하며, 중세 도시의 좁고 답답함과는 거리가 먼 이상적인 도시를 설계하고자 했다.

무한히 큰 정사각형 셀 격자 위에 NN개의 블록을 놓아 도시를 만든다. 각 셀은 (행, 열) 좌표쌍으로 나타낸다. 셀 (i,j)(i, j)에 인접한 셀은 (i−1,j)(i-1, j), (i+1,j)(i+1, j), (i,j−1)(i, j-1), (i,j+1)(i, j+1)이다. 각 블록은 정확히 하나의 셀을 덮으며, 1≤i,j≤231−21 \le i, j \le 2^{31} - 2인 셀 (i,j)(i, j)에만 놓을 수 있다. 서로 인접한 두 셀에 놓인 두 블록은 인접했다고 한다.

이상적인 도시에서는 모든 블록이 구멍 없이 연결되어야 한다. 정확히 말하면, 다음 두 조건을 만족해야 한다.

  1. 비어 있는 임의의 두 셀에 대해, 인접한 빈 셀만을 지나 한 셀에서 다른 셀로 가는 경로가 적어도 하나 존재한다.
  2. 비어 있지 않은 임의의 두 셀에 대해, 인접한 채워진 셀만을 지나 한 셀에서 다른 셀로 가는 경로가 적어도 하나 존재한다.

(아래 그림들은 모두 이상적인 도시가 아니다. 앞의 두 개는 조건 1을, 세 번째는 조건 2를, 네 번째는 두 조건 모두를 만족하지 않는다.)

도시 안에서 한 걸음은 한 블록에서 인접한 블록으로 이동하는 것을 뜻한다. 빈 셀로는 이동할 수 없다. 격자 위 NN개 블록의 좌표를 v0,v1,…,vN−1v_0, v_1, \dots, v_{N-1}이라 하자. 서로 다른 두 블록 viv_i, vjv_j 사이의 거리 d(vi,vj)d(v_i, v_j)는 한 블록에서 다른 블록으로 가는 데 필요한 최소 걸음 수로 정의한다.

아래 그림은 좌표 v0=(2,5)v_0=(2,5), v1=(2,6)v_1=(2,6), v2=(3,3)v_2=(3,3), v3=(3,6)v_3=(3,6), v4=(4,3)v_4=(4,3), v5=(4,4)v_5=(4,4), v6=(4,5)v_6=(4,5), v7=(4,6)v_7=(4,6), v8=(5,3)v_8=(5,3), v9=(5,4)v_9=(5,4), v10=(5,6)v_{10}=(5,6)을 가지는 N=11N = 11개 블록으로 이루어진 이상적인 도시를 나타낸다. 이때 d(v1,v3)=1d(v_1, v_3)=1, d(v1,v8)=6d(v_1, v_8)=6, d(v6,v10)=2d(v_6, v_{10})=2, d(v9,v10)=4d(v_9, v_{10})=4이다.

0≤i<j≤N−10 \le i < j \le N-1인 모든 블록 쌍 viv_i, vjv_j에 대한 거리의 합, 즉 ∑0≤i<j≤N−1d(vi,vj)\sum_{0 \le i < j \le N-1} d(v_i, v_j) 을 계산해야 한다. 위 예시의 도시에는 11×10/2=5511 \times 10 / 2 = 55개의 블록 쌍이 있으며, 모든 쌍의 거리 합은 174174이다.

결과가 매우 클 수 있으므로, 이 합을 1,000,000,000으로 나눈 나머지를 출력한다.

입력

첫째 줄에 블록의 수 NN이 주어진다. 이어지는 NN개 줄 중 ii번째 줄에는 블록 ii의 좌표 XiX_i와 YiY_i가 공백으로 구분되어 주어진다 (1≤Xi,Yi≤231−21 \le X_i, Y_i \le 2^{31} - 2). 주어지는 도시는 항상 이상적인 도시임이 보장된다.

출력

0≤i<j≤N−10 \le i < j \le N-1인 모든 블록 쌍의 거리 합을 1,000,000,000으로 나눈 나머지를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    11
    2 5
    2 6
    3 3
    3 6
    4 3
    4 4
    4 5
    4 6
    5 3
    5 4
    5 6
    
    예상 출력
    174