atcoder#ABC157F. [ABC157F] Yakiniku Optimization Problem

[ABC157F] Yakiniku Optimization Problem

配点 : 600600

問題文

高橋君は二次元平面である網の上で NN 枚の肉を焼こうとしています。 ii 枚目の肉の位置は (xi,yi)\left(x_i, y_i\right)であり、火の通りにくさは cic_i です。

高橋君は熱源を 11 つ持っています。熱源を位置 (X,Y)\left(X, Y\right) (X,YX, Yは実数)に置くと、 ii枚目の肉は、 焼けるまでに $c_i \times \sqrt{\left(X - x_i\right)^2 + \left(Y-y_i\right)^2}$ 秒掛かります。

高橋君は肉を KK 枚食べたいと考えています。 KK 枚以上の肉が焼けるまでに掛かる時間を最小化するように高橋君が熱源を配置したとき、その所要時間を求めてください。

制約

  • 入力は全て整数
  • 1N601 \leq N \leq 60
  • 1KN1 \leq K \leq N
  • 1000xi,yi1000-1000 \leq x_i , y_i \leq 1000
  • $\left(x_i, y_i\right) \neq \left(x_j, y_j\right) \left(i \neq j \right)$
  • 1ci1001 \leq c_i \leq 100

入力

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

NN KK

x1x_1 y1y_1 c1c_1

\vdots

xNx_N yNy_N cNc_N

出力

答えを出力せよ。

なお、想定解答との絶対誤差または相対誤差が 10610^{-6} 以下であれば正解として扱われる。

4 3
-1 0 3
0 0 3
1 0 2
1 1 40
2.4

熱源を (0.2,0)\left(-0.2, 0\right)に置くと、 2.42.4 秒後までに 1,2,31, 2, 3 枚目の肉が焼けます。これが最適な熱源の置き方です。

10 5
-879 981 26
890 -406 81
512 859 97
362 -955 25
128 553 17
-885 763 2
449 310 57
-656 -204 11
-270 76 40
184 170 16
7411.2252