atcoder#TENKA12017E. CARtesian Coodinate

CARtesian Coodinate

题目描述

xy xy 平面上に直線が N N 本あります。i i 本目の直線は、Aix+Biy=Ci A_ix+B_iy=C_i で表される直線です。 これら N N 直線と、x x 軸、y y 軸を合わせた合計 N+2 N+2 本の直線のうちどの相異なる 2 2 本をとっても、ちょうど 1 1 点で交わります。

全ての 1  i < j  N 1\ \leq\ i\ <\ j\ \leq\ N に対し、i i 本目の直線と j j 本目の直線の交点に車を配置します。 3 3 直線以上が一点で交わる場合も、各直線の組に対して独立に車を配置します。すなわち、k k 本の直線の交点には、 k(k1)/2 k(k-1)/2 台の車が配置されていることになります。

車は全てとても古くなっているため、各車は、x x 軸または y y 軸に平行な方向にのみ動くことができます。

骨董品の車の展覧会を開催したい高橋君は、xy xy 平面上に会場を 1 1 つ設けることになりました。 車マニアの高橋君は、今にも壊れそうな車たちをなるべく壊さないように、 全ての車を会場に移動するときの移動距離の合計が最も小さくなるような地点に会場を設けることにしました。 もしそのような地点が一意に定まらないなら、上の条件を満たす地点のうち x x 座標の最も小さい地点に、 それでも一意に定まらないなら、上の 2 2 条件に加えて y y 座標も最も小さい地点に高橋君は会場を設けます。

高橋君が会場を設ける地点の座標を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 B1 B_1 C1 C_1 : AN A_N BN B_N CN C_N

输出格式

高橋君が会場を設ける地点の x x 座標と y y 座標を、順に空白区切りで出力せよ。絶対誤差あるいは相対誤差が 109 10^{-9} 以下の場合に正答と判断される。

题目大意

给出平面上 nn 条直线,每条直线形如 Aix+Biy=CA_ix+B_iy=C,满足所有直线两两相交并且不与坐标轴平行。

现在在每对直线交点处放一辆车。注意:每两条直线相交就放一辆车,即使交点与另外的某个交点相同

现在要把这些车聚集到同一个点,这些车只能平行于坐标轴移动,找到一个点使得这些车移动距离和最小

在满足上述条件的情况下,如果有多个点,就输出横坐标最小的,如果仍然有多组解,输出纵坐标最小的。

$n\le 4\times 10^4,1\le |A_i|,|B_i|\le 10^4,0\le |C_i|\le 10^4$,所有输入均为整数。输出精度误差不超过 10910^{-9}

3
1 1 1
2 -1 2
-1 2 2
1.000000000000000 1.000000000000000
4
1 1 2
1 -1 0
3 -1 -2
1 -3 4
-1.000000000000000 -1.000000000000000
7
1 7 8
-2 4 9
3 -8 -5
9 2 -14
6 7 5
-8 -9 3
3 8 10
-1.722222222222222 1.325000000000000

提示

制約

  • 2  N  4 × 104 2\ ≦\ N\ ≦\ 4\ ×\ 10^4
  • 1  Ai,Bi  104(1  i  N) 1\ ≦\ |A_i|,|B_i|\ ≦\ 10^4(1\ ≦\ i\ ≦\ N)
  • 0  Ci  104(1  i  N) 0\ ≦\ |C_i|\ ≦\ 10^4(1\ ≦\ i\ ≦\ N)
  • 与えられるどの 2 2 直線も平行でない
  • 入力は全て整数である

Sample Explanation 1

![](https://img.atcoder.jp/tenka1-2017/650fff486341589a0388efff446acf0a.png) 図の青丸の地点に一台ずつ車が存在します。求める座標は、図の紫丸の地点になります。