CF424B Megacity

题目描述

托木斯克州政府坚信,是时候将城市发展成为“超级城市”(即人口达到一百万)了。他们决定,不通过改善人口结构,而是通过扩展城市边界来实现这个目标。 托木斯克市可以看作是平面上的点 $(0, 0)$。城市周围有 $n$ 个其他地点,第 $i$ 个地点坐标为 $(x_i, y_i)$,人口为 $k_i$。你可以将城市边界扩大为半径为 $r$ 的圆。这样,所有在圆内部或圆上的地点都将被纳入城市。 你的任务是编写程序,求出托木斯克市边界至少需要扩展到多大的半径 $r$,才能使城市总人口达到一百万。

输入格式

输入的第一行包含两个整数 $n$ 和 $s$($1 \leq n \leq 10^3$,$1 \leq s < 10^6$),分别表示托木斯克市周围地点的数量和城市当前的人口。接下来的 $n$ 行,每行包含三个整数,分别表示第 $i$ 个地点的坐标 $x_i$、$y_i$ 和该地人口 $k_i$($1 \leq k_i < 10^6$)。每个坐标为整数,绝对值不超过 $10^4$。 保证没有两个地点在同一位置,且没有地点在点 $(0, 0)$。

输出格式

输出一行,如果托木斯克永远无法成为超级城市,则输出 $-1$。否则,输出一个实数,表示城市边界需扩展到的最小半径。答案的绝对误差或相对误差不超过 $10^{-6}$ 即为正确。

说明/提示

由 ChatGPT 5 翻译