平面上に2つ以上の三角形の集合が与えられる。与えられる三角形は、以下の条件を満たすものとする。
三角形の集合が形成する多角形の内部は、三角形によりすべて埋め尽くされている。つまり、図(e)のような三角形の集合は与えられない。
これらの三角形で形成される多角形のすべての頂点の座標を求めよ。たとえば、図(a)の三角形の集合からは、図(f) の多角形が得られる。
上の条件を満たすように2つ以上の三角形が与えられたとき、それらが形成する多角形のすべての頂点の座標を求めるプログラムを作成せよ。入力は以下の形式で与えられる。
$N$ $Triangle_1$ $Triangle_2$ : Triangle_N$
1行目に、三角形の個数$N$ ($2 \leq N \leq 100,000$)が与えられる。 続く$N$行に、$i$番目の三角形の情報$Triangle_i$が与えられる。各$Triangle_i$は以下の形式で与えられる。
$x_1$ $y_1$ $x_2$ $y_2$ $x_3$ $y_3$
$i$番目の三角形のj番目の頂点の$x$座標$x_j$ ($-1,000,000,000 \leq x_j \leq 1,000,000,000$)と$y$座標$y_j$ ($-1,000,000,000 \leq y_j \leq 1,000,000,000$)が、それぞれ整数で反時計回りの順に与えられる。
三角形の集合が形成する多角形の輪郭線に沿って、多角形の各頂点のx座標とy座標を表す整数の組を、空白区切りで1行に出力する。頂点は以下の順番で出力する。
2 0 0 4 4 0 4 1 1 3 1 3 3
0 0 1 1 3 1 3 3 4 4 0 4
3 0 0 2 0 1 2 2 0 3 2 1 2 2 0 4 0 3 2
0 0 4 0 3 2 1 2
下図の(a)(b)はそれぞれ入力例2と出力例2を表す。