#P14691. [Bulgarian2020]Incinerator
[Bulgarian2020]Incinerator
题目描述
艾莉所在国家的政府认为空气“太干净了”,于是打算新建一座焚化炉来焚烧垃圾。
国家可以视作一个边长为 1000 千米的正方形区域。
在这个国家中已经有 N 座火电厂。第 i 座火电厂的位置为点 (X_i, Y_i),位于正方形内部或边界上。
每座火电厂产生的烟雾云可以看成一个以 (X_i, Y_i) 为圆心、R_i 为半径的圆。
已知任意两座火电厂的烟雾云互不重叠。
现在政府希望修建一座新的焚化炉,使其烟雾云同样满足:不与任何现有火电厂的烟雾云重叠。
焚化炉的圆心必须位于国家领土内(包括边界),但所有烟雾云都允许伸出国家边界之外。
请你编写程序 incinerator,求新建焚化炉烟雾云可能达到的最大半径。
输入格式
第一行输入一个整数 N,表示现有火电厂数量。
接下来 N 行,每行输入三个实数 X_i, Y_i, R_i,分别表示第 i 座火电厂的坐标和烟雾云半径。
每个实数的小数点后不超过 9 位。
输出格式
输出一个实数,表示在最优选址下,焚化炉烟雾云的最大可能半径。
若你的答案与标准答案的误差小于 10^-9,则视为正确。
数据范围
2 <= N <= 1000 <= X_i, Y_i <= 10001 <= R_i <= 1414
额外说明:
- 在
30%的测试中,N = 2 - 在
60%的测试中,N <= 20
样例
原题样例配有示意图。
此处应插入原题示意图(正方形区域、若干已有圆以及新圆位置示意图)。
输入
7
42.1337 13.666 191.17
543.21 765.432 55.555
987.987 666.666 321.321
0 1000 100
666.666 66.66 16.6
133.331 666.666666666 123.321
888.8 88.8 8.8
输出
320.337196456704
样例解释
一种最优方案下,焚化炉圆心坐标为:
(434.939950686, 341.298204535)

样例图中,新焚化炉的烟雾云仅画出了圆周轮廓;已有火电厂的烟雾云则画成了实心圆或实心圆的一部分。