Triangle Partition
Time Limit: 1 Second Memory Limit: 32768 KB
Special Judge
Let A, B and C denote the vertices of the triangle. There are n points, P1, P2, ..., Pn, given inside ABC. You are requested to find a point Q such that each of three triangles QBC, QCA and QAB contains at least n/3 points. Points on the boundary line are counted in both triangles. For example, a point on the line QA is counted in QCA and also in QAB. If Q coincides a point, the point is counted in all three triangles.
It can be proved that there always exists a point Q satisfying the above condition. The problem will be easily understood from the figure below.
Input
The input consists of multiple data sets, each representing a set of points. A data set is given in the following format.
n
x1 y1
x2 y2
...
xn yn
The first integer n is the number of points, such that 3 <= n <= 300. n is always a multiple of 3. The coordinate of a point Pi is given by (xi, yi). xi and yi are integers between 0 and 1000.
The coordinates of the triangle ABC are fixed. They are A(0, 0), B(1000, 0) and C(0, 1000).
Each of Pi is located strictly inside the triangle ABC, not on the side BC, CA nor AB. No two points can be connected by a straight line running through one of the vertices of the triangle. Speaking more precisely, if you connect a point Pi with the vertex A by a straight line, another point Pj never appears on the line. The same holds for B and C.
The end of the input is indicated by a 0 as the value of n. The number of data sets does not exceed 10.
Output
For each data set, your program should output the coordinate of the point Q. The format of the output is as follows.
qx qy
For each data set, a line of this format should be given. No extra lines are allowed.
Each of qx and qy should be represented by a fractional number (e.g., 3.1416) but not with an exponential part (e.g., 6.023e+23 is not allowed). For digits should follow the decimal point.
Note that there is no unique "correct answer" in this problem. In general, there are infinitely many points which satisfy the given condition. Your result may be any one of these "possible answers".
In your program, you should be careful to minimize the effect of numeric errors in the handling of floating-point numbers. However, it seems inevitable that some rounding errors exist in the output. We expect that there is an error of 0.5*10^-4 in the output, and will judge your result accordingly.
Sample Input
3 100 500 200 500 300 500 6 100 300 100 600 200 100 200 700 500 100 600 300 0
Sample Output
166.6667 555.5556 333.3333 333.3333Submit
Source: Asia 1998, Tokyo (Japan)