밧줄에 묶인 풍선
시간 제한1초메모리 제한128 MB
지면에 고정된 닻에 일정한 길이의 밧줄로 묶인 풍선이 모든 밧줄을 팽팽하게 유지하고 서로 엇갈리지 않으며 오르는 최대 높이를 구합니다.
문제
땅에 놓인 풍선이 밧줄 한 개 이상으로 땅에 박힌 고정점과 이어져 있다. 각 밧줄은 풍선과 고정점을 잇기에 충분히 길고, 두 밧줄이 서로 교차하는 일은 없다. 그림 E-1이 이런 상황을 보여 준다.

그림 E-1: 땅 위의 풍선과 밧줄
이제 풍선이 떠오른다. 밧줄 연결을 모두 유지한 채 풍선이 얼마나 높이 올라가는지 구하자. 고정점의 위치는 움직이지 않는다. 밧줄의 길이와 고정점의 위치가 주어진다. 밧줄에는 무게가 없어서 어느 방향으로 당겨도 곧게 펴진다고 가정해도 된다. 풍선은 올라가면서 옆으로도 움직일 수 있으므로 수평 위치는 자유롭다. 그림 E-2는 그림 E-1의 상황에서 풍선이 도달하는 가장 높은 위치다.

그림 E-2: 풍선이 도달하는 가장 높은 위치
입력
입력은 데이터 세트 여러 개로 이루어지고, 각 데이터 세트의 형식은 다음과 같다.
n
x1 y1 l1
...
xn yn ln
데이터 세트의 첫 줄에는 밧줄의 개수를 뜻하는 정수 ()이 주어진다. 이어지는 개의 줄에는 정수 , , 가 공백 하나로 구분되어 주어진다. 는 번째 밧줄이 연결된 고정점의 위치이고, 는 그 밧줄의 길이다. , , 이다. 풍선은 처음에 땅 위의 에 있다. 풍선과 고정점의 크기는 무시한다.
이면 와 는 서로 다른 위치다. 또 와 사이의 거리는 이하다. 즉 풍선은 적어도 높이 까지는 올라간다.
그림 E-1과 E-2는 공개 테스트 케이스의 첫 데이터 세트에 해당한다.
입력의 끝은 하나만 있는 줄로 표시된다.
출력
각 데이터 세트마다 풍선이 도달하는 최대 높이를 소수점 아래 일곱째 자리까지 반올림해 한 줄에 출력한다. 자리가 비면 을 채워 소수점 아래 일곱 자리를 항상 모두 적는다. 그 밖의 문자는 출력하지 않는다. 모든 테스트 데이터의 정답은 반올림 경계에서 이상 떨어져 있으므로 반올림 방향이 애매한 경우는 없다.