k-cover

k-cover

题目描述

给定欧氏平面上的 \(n\) 个点,坐标分别为 \((x_1,y_1),\cdots,(x_n,y_n)\)。

求一个半径尽可能小的圆,使得至少有 \(k\) 个点落在圆内。你需要对半径给出一个 \((1+\varepsilon)\)-估计。

这里取 \(\varepsilon=0.1\)。

具体地,设最小的可能半径为 \(R^*\),你的半径 \(R\) 必须满足 \(R^*\le R\le 1.1R^*\)。

输入格式

第一行两个数 \(n,k\)。

接下来 \(n\) 行,每行两个整数 \(x_i,y_i\)。

输出格式

仅一行三个数,依次表示你找出的圆的半径、圆心横坐标、圆心纵坐标。

输入输出样例 #1

输入 #1

4 2
0 0
0 1
1 0
1 1

输出 #1

0.5 0 0.5

说明/提示

样例 1 说明

显然 \(R^*=0.5\),圆心设在 \((0.5,0),(1,0.5),(0.5,1)\) 显然也是可以的。

数据规模与约定

对于 \(100\%\) 的数据,都有 \(1\le n\le 10^5\),\(-10^6\le x_i,y_i\le 10^6\)。

信息

ID
1006
难度
10
分类
(无)
标签
(无)
递交数
1
已通过
0
通过率
0%
上传者