#CF16EXHIBITIONFINALE. Water Distribution

Water Distribution

配点 : 10001000

問題文

二次元平面上に NN 個の都市があります。 ii 番目の都市の座標は (xi,yi)(x_i, y_i) です。 最初に、ii 番目の都市にある水の量は aia_i リットルです。

すぬけ君は、好きな量の水をある都市から他の都市に運ぶことができます。 しかし、水を運んでいる間に水が少し漏れます。 ss 番目の都市から tt 番目の都市に ll リットルの水を運ぶと、目的地に着いたときに残っている水の量は max(lds,t,0)max(l-d_{s,t}, 0) だけです。 ここで、ds,td_{s,t}ss 番目の都市と tt 番目の都市のユークリッド距離を表します。 すぬけ君は、このタイプの操作を任意の回数繰り返すことができます。

すぬけ君は、NN 個の都市にある水の量の最小値を最大化したいです。 全ての都市に少なくとも XX リットルの水を配ることができるような最大の XX を求めてください。

制約

  • 1N151 \leq N \leq 15
  • 0xi,yi,ai1090 \leq x_i, y_i, a_i \leq 10^9
  • 入力される全ての値は整数である。
  • どの二つの都市も同じ場所に無い。

入力

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

NN

x1x_1 y1y_1 a1a_1

:

xNx_N yNy_N aNa_N

出力

NN 個の都市にある水の量の最小値を最大値を出力せよ。 絶対誤差または相対誤差が 10910^{-9} 以下で無ければならない。

3
0 0 10
2 0 5
0 5 8
6.500000000000

最適解は、一番目の都市から二番目の都市に 3.53.5 リットルの水を運ぶことです。 操作の後、一番目と二番目の都市の水の量はどちらも 6.56.5 リットルとなり、三番目の都市の水の量は 88 リットルとなります。

15
335279264 849598327 822889311
446755913 526239859 548830120
181424399 715477619 342858071
625711486 448565595 480845266
647639160 467825612 449656269
160714711 336869678 545923679
61020590 573085537 816372580
626006012 389312924 135599877
547865075 511429216 605997004
561330066 539239436 921749002
650693494 63219754 786119025
849028504 632532642 655702582
285323416 611583586 211428413
990607689 590857173 393671555
560686330 679513171 501983447
434666178.237122833729