小红的圆移动
题号:NC279706
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

平面上有n个圆,小红可以进行任意次操作,每次操作可以选择一个圆,将它向任意方向移动若干距离。该操作的代价为该圆面积乘以移动的距离。
小红希望最终包含原点的圆数量不超过k,请你帮小红算出她操作的最小总代价。

输入描述:

第一行输入两个正整数n,k,用空格隔开。
接下来的n行,每行输入三个整数x,y,r,代表第i个圆的圆心是(x,y),半径是r
1 \leq k \leq n \leq 10^5
-10^6 \leq x,y \leq 10^6
1 \leq r \leq 10^6

输出描述:

一个实数,代表操作的最小总代价。若你的输出和标准答案的相对误差不超过10^{-6},则认为你的答案正确。
示例1

输入

复制
2 1
0 0 1
0 0 2

输出

复制
3.14159265358979324

说明

显然将小圆向任意方向移动距离1即可。