도로 건설
시간 제한2초메모리 제한512 MB
서로 겹치지 않는 n개의 원과 한 직선의 방향이 주어질 때, 어떤 원과도 교차하지 않으면서 양쪽에 원이 최소 하나씩 있는, 그 방향에 평행한 가장 넓은 띠를 구한다.
문제
햄버거 먹기 대회가 열린다! 대회는 서로 다른 두 도시에서 열린다. 그런데 계산에 약간 실수가 있어서, 이 두 도시를 숲을 가로질러 잇는 직선 도로가 없다. 시간을 절약하기 위해 주최측은 나무를 하나도 자르지 않고 숲을 가로지르는 최대 폭의 직선 도로를 짓기로 했다. 게다가 도로 양쪽에 각각 나무가 최소한 하나는 남아 있어야 한다.
단순화를 위해 각 나무를 평면 위의 원으로 나타내자. 주어진 두 점을 지나는 직선에 평행한, 무한히 긴 최대 폭의 도로를 짓는다.
입력
첫째 줄에는 네 정수 , , , 가 주어진다. 이는 직선이 지나는 두 점 와 의 좌표이다.
둘째 줄에는 하나의 정수 이 주어진다. 숲에 있는 나무의 수이다 (). 나무끼리 교차하지 않지만, 서로 접할 수는 있다.
다음 개의 줄에는 각각 세 정수 , , 가 주어진다. 이는 번째 나무의 중심 좌표와 반지름이다 ().
모든 좌표의 절댓값은 을 넘지 않는다.
출력
점 와 를 지나는 직선에 평행한 도로의 최대 폭을 출력한다. 도로 양쪽에 각각 나무가 최소한 하나 있어야 한다. 도로는 나무에 닿을 수 있지만 교차해서는 안 된다. 그러한 도로가 없으면 0을 출력한다.
답의 절대 오차 또는 상대 오차가 을 넘지 않으면 정답으로 인정된다. 형식적으로, 답이 이고 출제진의 답이 일 때 이면 인정된다.

