Anchored Balloon#6106

Anchored Balloon

8 секунди
64 мегабајта
Врло тешко

A balloon placed on the ground is connected to one or more anchors on the ground with ropes. Each rope is long enough to connect the balloon and the anchor. No two ropes cross each other. Figure 1 shows such a situation.

Figure 1: A balloon and ropes on the ground

Now the balloon takes off, and your task is to find how high the balloon can go up with keeping the rope connections. The positions of the anchors are fixed. The lengths of the ropes and the positions of the anchors are given. You may assume that these ropes have no weight and thus can be straightened up when pulled to whichever directions. Figure 2 shows the highest position of the balloon for the situation shown in Figure 1.

Figure 2: The highest position of the balloon

Улаз

The input consists of multiple datasets, each in the following format.

x_1\ y_1\ l_1

x_n\ y_n\ l_n

The first line of a dataset contains an integer (1 \leq n \leq 10) representing the number of the ropes. Each of the following lines contains three integers, x_i, y_i, and l_i, separated by a single space. P_i = (x_i,\ y_i) represents the position of the anchor connecting the -th rope, and l_i represents the length of the rope. You can assume that -100 \leq x_i \leq 100, -100 \leq y_i \leq 100, and 1 \leq l_i \leq 300. The balloon is initially placed at on the ground. You can ignore the size of the balloon and the anchors.

You can assume that P_i and P_j represent different positions if i \neq j. You can also assume that the distance between P_i and is less than or equal to l_i - 1. This means that the balloon can go up at least unit high.

Figures 1 and 2 correspond to the first dataset of Sample Input below.

The end of the input is indicated by a line containing a zero.

Излаз

For each dataset, output a single line containing the maximum height that the balloon can go up. The error of the value should be no greater than . No extra characters should appear in the output.

Примери

Пример 1

Loading
Loading