配点 : 600 点
問題文
2 次元平面上に N 本の直線があります。i 本目の直線は Aix+Biy+Ci=0 です。どの 2 本の直線も平行でないことが保証されます。
これらの直線の交点は、重複ありで 2N(N−1) 個ありますが、このうち原点から K 番目に近い点の原点との距離を出力してください。
制約
- 2≤N≤5×104
- 1≤K≤2N(N−1)
- $-1000 \le |A_i|,|B_i|,|C_i| \le 1000(1 \le i \le N)$
- どの 2 本の直線も平行でない。
- Ai=0 または Bi=0(1≤i≤N)
- 入力は全て整数。
入力
入力は以下の形式で標準入力から与えられる。
N K
A1 B1 C1
A2 B2 C2
⋮
AN BN CN
出力
答えを表す数値を出力せよ。
なお、想定解答との絶対誤差または相対誤差が 10−4 以下であれば正解として扱われる。
3 2
1 1 1
2 1 -3
1 -1 2
2.3570226040
i 本目の直線を直線 i ということとします。
- 直線 1 と直線 2 の交点は (4,−5) であり、原点との距離は 41≃6.4031242374 です。
- 直線 1 と直線 3 の交点は (2−3,21) であり、原点との距離は 210≃1.5811388300 です。
- 直線 2 と直線 3 の交点は (31,37) であり、原点との距離は 352≃2.3570226040 です。
よって、2 番目に原点に近い点は (31,37) であり、出力する値は 352 です。
6 7
5 1 9
4 4 -3
8 -1 2
0 1 -8
4 0 -4
2 -3 0
4.0126752298