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

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

입자 교환

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

요약
주어진 각 출발 쌍에 대해 전선으로 이어진 그래프에서 두 입자를 한 번에 하나씩 이웃 노드로 옮겨 위치를 맞바꾸되 두 입자 사이 최소 거리가 최대가 되게 합니다.
난이도

어려움10점 중 8점

유형
최소 신장 트리, 그래프, 이분 탐색, 유니온 파인드
정답자
아직 제출이 없습니다

문제

한 연구팀이 입자물리 실험을 준비한다. 평평한 판 위에 노드 nn개를 놓고 전선으로 이었다. 전선은 판 위에서 서로 교차할 수 있다.

실험이 시작되면 서로 다른 두 노드에 입자 한 쌍이 나타난다. 보통 물질 입자는 노드 AA에, 짝이 되는 반물질 입자는 노드 BB에 나타난다. 목표는 두 입자의 위치를 맞바꾸는 것, 즉 물질 입자가 노드 BB에 있고 반물질 입자가 노드 AA에 있는 상태에 도달하는 것이다. 실험은 이동을 여러 번 이어서 진행한다. 한 번의 이동은 두 입자 중 하나를 지금 있는 노드에서 전선으로 이어진 이웃 노드로 보내는 것이다.

물질과 반물질이 너무 가까워지면 서로 소멸하면서 실험 전체가 날아간다. 그래서 연구팀은 위치를 맞바꾸는 동안 두 입자 사이의 유클리드 거리가 가장 작았던 값을 최대한 크게 만들려고 한다. 이 최솟값을 실험의 안전도라고 한다. 입자가 전선을 지나는 중에는 위치를 따지지 않으므로, 위험한 순간은 두 입자가 모두 노드에 있을 때뿐이다.

입자가 어디에 나타날지는 아직 모른다. 물리학자들은 시작 노드 쌍 (A,B)(A, B)의 후보를 ℓ\ell개 적어 두었고, 후보마다 얻을 수 있는 안전도의 최댓값을 알고 싶다.

입력

첫 줄에 노드의 개수 nn (1≤n≤5001 \le n \le 500)이 주어진다. 다음 nn개 줄에는 노드 하나의 좌표를 나타내는 두 정수 xx, yy (−10000≤x,y≤10000-10000 \le x, y \le 10000)가 1번 노드부터 nn번 노드까지 순서대로 주어진다. 같은 점에 놓인 노드는 없다.

다음 줄에 전선의 개수 mm (0≤m≤20000 \le m \le 2000)이 주어진다. 다음 mm개 줄에는 두 정수 aa, bb (1≤a,b≤n1 \le a, b \le n, a≠ba \ne b)가 주어지며, 노드 aa와 노드 bb가 전선으로 이어져 있다는 뜻이다. 두 노드를 잇는 전선은 많아야 하나이고, 자기 자신을 잇는 전선은 없다.

다음 줄에 후보 목록의 길이 ℓ\ell (1≤ℓ≤(n2)1 \le \ell \le \binom{n}{2})이 주어진다. 다음 ℓ\ell개 줄에는 시작 노드 AA와 BB의 번호를 나타내는 두 정수 aa, bb (1≤a,b≤n1 \le a, b \le n, a≠ba \ne b)가 주어진다. 목록에 있는 모든 쌍은 안전도가 양수인 교환이 가능하므로, 두 입자가 같은 노드에 놓일 일은 없다.

출력

ℓ\ell개 줄을 출력한다. ii번째 줄에는 목록의 ii번째 쌍에서 얻을 수 있는 안전도의 최댓값을 소수점 아래 8자리까지, 그 자리에서 가장 가까운 값으로 반올림해 출력한다. 얻을 수 있는 안전도는 항상 두 노드 사이의 거리이므로, 답은 어떤 정수의 제곱근이다.

예제2

  1. 예제 1

    입력
    6
    0 0
    -1 3
    -1 0
    -1 -3
    3 0
    0 1
    6
    1 2
    2 3
    3 4
    4 1
    1 5
    5 6
    5
    6 5
    2 4
    2 6
    3 6
    4 6
    
    예상 출력
    1.00000000
    3.16227766
    2.23606798
    1.41421356
    3.16227766
    
  2. 예제 2

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