#2165. Watering the Fields

Watering the Fields

题目描述

由于缺少雨水,农夫约翰想建造一个灌溉系统。

在他的 N\red{N }个田地之间送水(1<=N<=2000\red{1 <= N <= 2000)}

每个场 i\red{i }2D\red{2D }平面中的不同点 (xi,yi)\red{(xi, yi) }描述0<=xi,yi<=1000\red{0 <= xi, yi <= 1000}。在两个之间建造水管的成本域 i\red{i }j\red{j }等于它们之间的平方欧几里得距离:

(xixj)2+(yiyj)2\red{(xi - xj)^2 + (yi - yj)^2}

FJ\red{FJ }想建立一个成本最低的管道系统,以便他所有的田地是连在一起的\red{--}所以任何田地里的水都可以跟随管道序列到达任何其他领域。

不幸的是,正在帮助 FJ\red{FJ }安装灌溉设备的承包商系统拒绝安装任何管道,除非其成本(平方欧几里得长度)至少为 C\red{C(}1<=C<=1,000,000\red{1 <= C <= 1,000,000)}

请帮助 FJ\red{FJ }计算他需要支付的最低金额才能连接所有他的田地里有一个管道网络。

给定 n\red{n }个点,第 i\red{i}个点的坐标为 (xi,yi)\red{(x_i,y_i),}如果想连通第 i\red{i}个点与第 j\red{j }个点,需要耗费的代价为两点的距离。

ii\red{ii}个点与第 j\red{j }个点之间的距离使用欧几里得距离的平方进行计算,即:

(xixj)2+(yiyj)\red{(x_i-x_j)^2+(y_i-y_j)}

我们规定耗费代价小于 c\red{c}的两点无法连通,求使得每两点都能连通下的最小代价,如果无法连 通输出 1\red{-1}

输入格式

1\red{1 }行:整数 N\red{N }C\red{C}

2..1+N\red{2..1+N }行:第 i+1\red{i+1 }行包含整数 xi\red{xi }yi\red{yi}

第一行两个整数 n,c\red{n,c}代表点数与想要连通代价不能少于的一个数。

接下来 n\red{n}行每行两个整数 xi,yi\red{x_i,y_i}描述第 i\red{i}个点。

输出格式

1\red{1 }行:连接管道网络的最低??成本 字段,如果无法构建这样的网络,则为 1\red{-1}

一行一个整数代表使得每两点都能连通下的最小代价,如果无法连通输出 1\red{-1}

样例

输入样例

3 11
0 2
5 0
4 3

输出样例

46

提示

输入细节:

3\red{3 }个字段,位于 (0,2)\red{(0,2)}(5,0)\red{(5,0) }(4,3)\red{(4,3) }位置。承包商 只会安装成本至少为 11\red{11 }的管道。

输出细节: FJ\red{FJ }不能在 (4,3)\red{(4,3) }(5,0)\red{(5,0) }的字段之间建立管道,因为它的成本只有 10\red{10}

因此他在 (0,2)\red{(0,2) }(5,0)\red{(5,0) }之间建造了一个管道成本为 29\red{29,}(0,2)\red{(0,2) }(4,3)\red{(4,3) }之间的管道成本为 17\red{17}