Description
PIPI新买了一个扫地机器人,用于打扫房间的垃圾。PIPI的房间可以抽象成一个平面直角坐标系,原点(0,0)为扫地机器人的基站,是机器人充电和倒垃圾的地方。
现在PIPI的房间一共有n个垃圾需要打扫,编号为1~n,它们坐落在房间不同的位置,现在机器人从基站出发,按照垃圾编号将这些垃圾进行打扫。
但是问题来了,每个垃圾都有其重量,而机器人最多携带重量不超过C的垃圾(否则就需要先返回基站处理掉)。
现在PIPI想知道,机器人最少走多少的距离就能处理完所有垃圾(最后回到基站)?
数据保证不会出现单个垃圾重量大于C的情况,机器人的运动平行于坐标轴。
Input
第一行两个正整数n,C,分别表示垃圾的数量和机器人最大承重,n<=1e6,C<=1e9.
接下来n行,每行3个整数x,y,w,(x,y)表示垃圾的坐标,w为垃圾重量。|x|,|y|<=1e9,0<w<=1e9.
Output
输出一个整数,表示处理完所有垃圾最少需要走的距离。
Sample Input
4 10
1 2 3
1 0 3
3 1 4
3 1 4