BACKTPOL - Back To The Polygon

A simple polygon is a polygon that does not overlap with itself. A diagonal of a simple polygon is a segment within the polygon that connects two non-consecutive vertices. A triangulation of a simple polygon of N edges is the drawing of exactly N − 3 diagonals that do not touch each other anywhere, with the possible exception of their endpoints. A triangulation divides the polygon in exactly N − 2 triangles that do not overlap and only touch each other along their edges.

In this problem, you are given the triangulation of a simple polygon, which means, the set of triangles in which a polygon was divided. From them, you need to reconstruct the original polygon.

Input

The input contains several test cases, each one described in several lines. The first line of each test case contains an integer N (3 ≤ N ≤ 500), the number of edges of the original polygon. Each of the next N − 2 lines describes one triangle in the triangulation of the polygon. Each triangle is given by six integers X1, Y1, X2, Y2, X3 and Y3 separated by single spaces, where Xi and Yi are the coordinates in the XY plane of the i-th vertex of the triangle (−1000 ≤ Xi, Yi ≤ 1000). The triangles and their vertices are not given in any specific order. The last line of the input contains a single −1 and should not be processed as a test case.

Output

For each test case output a single line with 2N integers separated by single spaces. These integers must represent the coordinates in the XY plane of the vertices of the original polygon, in clockwise order. To make the output unique, the first vertex to be listed is the one with the smallest X coordinate, and if there are many of those, the one with the smallest Y coordinate among them.

Example

Input:
5
0 0 10 9 10 0
10 9 0 9 0 0
10 9 0 9 5 13
3
0 1 1 1 1 0
10
-1 -2 2 -2 2 -1
-1 -2 0 -1 -2 3
-2 3 2 3 1 2
0 -1 2 1 1 2
-1 -2 2 -1 0 -1
2 1 0 -1 2 0
2 3 2 2 1 2
0 -1 -2 3 1 2
-1

Output:
0 0 0 9 5 13 10 9 10 0
0 1 1 1 1 0
-2 3 2 3 2 2 1 2 2 1 2 0 0 -1 2 -1 2 -2 -1 -2

Added by:Pablo Ariel Heiber
Date:2010-08-13
Time limit:0.200s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: NODEJS OBJC PERL6 VB.NET
Resource:FCEyN UBA ICPC Selection 2007

hide comments
2020-05-07 21:17:00 Simes
Is there something funny with the input or output? I keep getting WA, so tested against the original problem's input - my output matched exactly. Yeah I know, 84 people already got AC.

Last edit: 2020-05-08 10:10:26
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.