atcoder#ABC157F. [ABC157F] Yakiniku Optimization Problem

[ABC157F] Yakiniku Optimization Problem

题目描述

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

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

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

输入格式

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

N N K K x1 x_1 y1 y_1 c1 c_1 \vdots xN x_N yN y_N cN c_N

输出格式

答えを出力せよ。

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

题目大意

给定平面直角坐标系内的 NN 个点 ,每个点的坐标为 (xi , yi)(x_i\ ,\ y_i),且有一个系数 cic_i

请选择一个点 (, Y)(\text{X}\ ,\ \text{Y}) ,最小化 $c_i\times\sqrt{{(\text{X}-x_i)}^2+{(\text{Y}-y_i)}^2}$ 的 KK 小值。

输出该 KK 小值 ,误差不超过 10610^{-6} 即视为正确 。

数据范围:$1 \leqslant K \leqslant N \leqslant 60\ ,-1000 \leqslant x_i\ ,\ y_i \leqslant 1000\ ,1 \leqslant c_i \leqslant 100$ ,无重复点。

4 3
-1 0 3
0 0 3
1 0 2
1 1 40
2.4
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

提示

制約

  • 入力は全て整数
  • 1  N  60 1\ \leq\ N\ \leq\ 60
  • 1  K  N 1\ \leq\ K\ \leq\ N
  • 1000  xi , yi  1000 -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) $
  • 1  ci  100 1\ \leq\ c_i\ \leq\ 100

Sample Explanation 1

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