QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#18954. 贪吃蛇

Statistics

夏天到了,又到了蛇蛇出来觅食的季节。

蛇蛇生活的地方可以看成一个二维平面,它位于原点 $(0,0)$。平面上有 $n$ 个食物,第 $i$ 个食物位于整数坐标 $(x_i,y_i)$,保证没有食物位于原点。

蛇蛇的觅食方式很特殊:

  1. 先选择一个以原点为圆心的角度区间 $[\alpha,\beta]$;
  2. 以原点为顶点,张开一个以该区间为圆心角的扇形,并且扇形会不断向外扩展,直到将该角度区间内(包含边界)的所有食物全部一口吞下。

扇形的面积大小就是蛇蛇本顿觅食消耗的能量。

蛇蛇现在很饿,它想知道,想要一口吃掉至少 $k$ 个食物,所需的最少能量是多少?

Input

第一行一个整数 $t$ ($1\le t\le 10^4$),表示测试数据组数。保证所有测试数据的 $n$ 之和不超过 $2\times 10^5$。

对于每组数据:

第一行两个整数 $n,k$ ($1\le k\le n\le 2\times 10^5$),分别表示食物总数和至少需要吃掉的食物数量。

接下来 $n$ 行,每行两个整数 $x_i,y_i$ ($|x_i|,|y_i|\le 10^6$),表示第 $i$ 个食物的坐标。保证 $(x_i,y_i)\neq(0,0)$。

Output

对于每组数据,输出一行一个实数,表示最少所需能量。

当你的输出与标准答案的绝对误差或相对误差不超过 $10^{-9}$ 时即被视为正确。

Examples

Input 1

2
1 1
1 2
3 2
0 2
1 0
-1 -1

Output 1

0.000000000000
2.356194490192

Note

对于第一组数据,只有一个食物且 $k=1$,选择的角度区间恰好只包含该食物的方向,扇形退化为一条从原点出发的线段,面积为 $0$。

对于第二组数据,最优策略为覆盖食物 $(-1,-1)$ 和 $(1,0)$,最少能量是 $\frac{1}{2} \times \frac{3\pi}{4} \times 2 = \frac{3\pi}{4}$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.