codancer来到了一个能量平面上的中心,坐标为(0,0),接下来巫师Tom会在 q 个坐标上放置能量点,每个能量点的能量值为 1,为了打败哥斯拉,他需要至少k 点的能量,因此他想确定一个最小的整数半径 r 使得 codancer 能够从这个圆心为(0,0),半径为 r 的圆形区域内得到至少 k 个能量值,请你帮他确定最小的整数半径 r。输入包含三个部分,第一个输入能量点的个数q(1<=q<=100000),第二个输入必须获得的最小能量值k(0<=k<=q),第三个是q个坐标(xi,yi),(-100000<=xi<=100000, -100000<=yi<=100000 并且 xi 和 yi 都是整数 )。输出一个正整数 r,表示最小的半径。
1.计算每个点到原点的距离,为了减少计算量可以只计算到平方。使用long[n] 这样的数组来保存。使用 long 类型是为了防止平方之后结果超出int 类型范围。 2.对距离进行从小到大排序 3.取排序后的第 k 个数值开根号,转化为 int 类型并加 1。加 1 是因为开根号后可能为小数,转化成 int 类型会直接舍去小数部分,导致结果比实际小一些。 因此输入:4 3 [[1,1],[-1,1],[-1,-1],[2,3]] 输出:2
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。