만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

이고리와 장난감

시간 제한2.5초메모리 제한1024 MB

요약
x축 위에 놓인 볼록 다각형 N개가 주어집니다. 두 장난감을 좌우 어느 순서로든 맞붙였을 때 최소 상자 너비를 Q개의 질의마다 구합니다.
난이도

어려움10점 중 9점

유형
기하, 분할 정복, 정렬
정답자
아직 제출이 없습니다

문제

일주일 내내 비가 그치지 않자 이고리는 집에서 좋아하는 장난감만 가지고 놀았다. 하지만 같은 놀이를 오래 하니 금방 지겨워져서, 이고리는 부모님께 새 장난감을 사 달라고 졸랐다. 부모님은 쉽게 허락했고, 다음 날 온 가족이 장난감 가게로 갔다.

가게에 들어서자 이고리의 눈이 휘둥그레졌다. 레이싱카, 흰 돛이 달린 배, 반짝이는 날이 눈길을 끄는 검까지 모두 갖고 싶었다. 가게에는 새 장난감이 모두 NN개 있고, 모두 평평하며 볼록 다각형 모양이다. 가게 이름이 '어린이를 위한 십만 하나의 볼록 다각형'인 것을 생각하면 당연하다. 엄격한 아버지는 이고리에게 장난감을 두 개만 사 주겠다고 했다. 이고리는 머릿속으로 조합을 따져 보았지만 경우의 수가 너무 많았다. 정확히는 장난감 쌍을 고르는 방법이 QQ가지인 경우의 답이 궁금했다.

이고리는 장난감을 포장하는 방식이 궁금해졌다. 각 쌍 ii, jj에 대해 이고리는 다음 작업을 한다. 처음에 각 장난감은 몸에 꼭 맞는 평평한 직사각형 상자에 들어 있다. 이고리는 두 상자를 탁자 위에 나란히 놓는데, ii번 장난감을 jj번 장난감의 왼쪽에 놓아도 되고 오른쪽에 놓아도 된다. 그다음 상자를 치우고 장난감을 가능한 한 서로 바싹 붙인 뒤, 그 결과물을 다시 상자에 넣는다(그림 참고). 이고리는 알뜰해서 최종 상자의 크기를 알고 싶어 한다. 장난감은 탁자 면과 평행하게만 밀 수 있으므로 높이는 바뀌지 않는다. 따라서 최종 상자의 최소 너비만 구하면 된다.

장난감은 탁자 면과 평행하게만 움직일 수 있고 어떤 방식으로도 회전할 수 없다. 그러므로 문제는 2차원으로 볼 수 있다. OxOx축은 탁자 면 위에 있고, 높이를 재는 OyOy축은 탁자 면에 수직이다. 상자의 변은 좌표축과 평행하다. 가게의 장난감 중에는 탁자 위에 세워 둘 수 있는 것도 있으며, 꼭짓점 하나만 대고 균형을 잡을 수도 있다.

입력

첫 줄에는 장난감의 개수를 나타내는 자연수 NN(1≤N≤1000001 \le N \le 100000)이 주어진다. 그다음에는 NN개의 볼록 다각형이 차례로 주어진다. mm번째 다각형은 먼저 꼭짓점 개수 kmk_m(3≤km≤3000003 \le k_m \le 300000)이 주어지고, 이어서 kmk_m개의 줄에 정수 쌍 xm,sx_{m,s}, ym,sy_{m,s}가 한 줄에 하나씩 주어진다. 모든 좌표의 절댓값은 10910^9을 넘지 않는다. 꼭짓점은 반시계 방향 순서로 주어지며, 각 장난감을 담은 상자의 좌표계에서 표현된다. 즉 ym,s>0y_{m,s} > 0이고, 모든 장난감에는 ym,vm=0y_{m,v_m} = 0인 꼭짓점 vmv_m이 있다. 모든 kmk_m의 합을 SS라 하면 S≤300000S \le 300000이다.

그다음 줄에는 질의 개수를 나타내는 자연수 QQ(1≤Q≤5000001 \le Q \le 500000)가 주어진다. 이어서 QQ개의 줄에 자연수 쌍 iti_t, jtj_t(1≤it<jt≤N1 \le i_t < j_t \le N)가 한 줄에 하나씩 주어지며, 이는 그 질의에서 밀어 맞출 장난감의 번호다.

출력

QQ개의 줄에 각 질의의 답을 출력한다. 각 줄에는 필요한 상자의 최소 너비를 나타내는 실수 하나를 출력한다. 절대 오차 또는 상대 오차가 10−910^{-9} 이하이면 정답으로 인정한다.

힌트

위쪽 그림은 장난감이 상자에 들어 있던 처음 상태를 보여 준다. 아래 그림은 장난감을 밀어 맞춘 최종 배치의 예시이며, 왼쪽이 최적 배치다.

예제1

  1. 예제 1

    입력
    2
    5
    0 0
    4 2
    6 6
    3 8
    -2 4
    5
    0 0
    2 0
    8 4
    5 11
    3 12
    1
    1 2
    
    예상 출력
    14.5000000000