입자 교환
시간 제한5초메모리 제한256 MB
주어진 각 출발 쌍에 대해 전선으로 이어진 그래프에서 두 입자를 한 번에 하나씩 이웃 노드로 옮겨 위치를 맞바꾸되 두 입자 사이 최소 거리가 최대가 되게 합니다.
문제
한 연구팀이 입자물리 실험을 준비한다. 평평한 판 위에 노드 개를 놓고 전선으로 이었다. 전선은 판 위에서 서로 교차할 수 있다.
실험이 시작되면 서로 다른 두 노드에 입자 한 쌍이 나타난다. 보통 물질 입자는 노드 에, 짝이 되는 반물질 입자는 노드 에 나타난다. 목표는 두 입자의 위치를 맞바꾸는 것, 즉 물질 입자가 노드 에 있고 반물질 입자가 노드 에 있는 상태에 도달하는 것이다. 실험은 이동을 여러 번 이어서 진행한다. 한 번의 이동은 두 입자 중 하나를 지금 있는 노드에서 전선으로 이어진 이웃 노드로 보내는 것이다.
물질과 반물질이 너무 가까워지면 서로 소멸하면서 실험 전체가 날아간다. 그래서 연구팀은 위치를 맞바꾸는 동안 두 입자 사이의 유클리드 거리가 가장 작았던 값을 최대한 크게 만들려고 한다. 이 최솟값을 실험의 안전도라고 한다. 입자가 전선을 지나는 중에는 위치를 따지지 않으므로, 위험한 순간은 두 입자가 모두 노드에 있을 때뿐이다.
입자가 어디에 나타날지는 아직 모른다. 물리학자들은 시작 노드 쌍 의 후보를 개 적어 두었고, 후보마다 얻을 수 있는 안전도의 최댓값을 알고 싶다.
입력
첫 줄에 노드의 개수 ()이 주어진다. 다음 개 줄에는 노드 하나의 좌표를 나타내는 두 정수 , ()가 1번 노드부터 번 노드까지 순서대로 주어진다. 같은 점에 놓인 노드는 없다.
다음 줄에 전선의 개수 ()이 주어진다. 다음 개 줄에는 두 정수 , (, )가 주어지며, 노드 와 노드 가 전선으로 이어져 있다는 뜻이다. 두 노드를 잇는 전선은 많아야 하나이고, 자기 자신을 잇는 전선은 없다.
다음 줄에 후보 목록의 길이 ()이 주어진다. 다음 개 줄에는 시작 노드 와 의 번호를 나타내는 두 정수 , (, )가 주어진다. 목록에 있는 모든 쌍은 안전도가 양수인 교환이 가능하므로, 두 입자가 같은 노드에 놓일 일은 없다.
출력
개 줄을 출력한다. 번째 줄에는 목록의 번째 쌍에서 얻을 수 있는 안전도의 최댓값을 소수점 아래 8자리까지, 그 자리에서 가장 가까운 값으로 반올림해 출력한다. 얻을 수 있는 안전도는 항상 두 노드 사이의 거리이므로, 답은 어떤 정수의 제곱근이다.