#include<bits/stdc++.h>
double ans;
struct pz{
double a,b;
}where[1005];
struct ll{
int a,b;
double c;
}a[1000005];
int father[1005];
bool mid(ll a,ll b){
return a.c<b.c;
}
int get_father(int i){
return father[i]==i?i:father[i]=get_father(father[i]);
}
double pigu(double x,double x1,double y,double y1)
{
double i=(x-x1)*(x-x1);
double j=(y-y1)*(y-y1);
return sqrt(i+j);
}
using namespace std;
int main(){
int n,m;
int l=1;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%lf%lf",&where[i].a,&where[i].b);
}
for(int i=1;i<=n;i++){
father[i]=i;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
a[l].c=pigu(where[i].a,where[j].a,where[i].b,where[j].b);
l++;
}
}
for(int i=1;i<=m;i++){
int x,y;
scanf("%d%d",&x,&y);
father[x]=y;
}
sort(a+1,a+1+l,mid);
int cnt=0;
for(int i=1;i<=l&&cnt<n-1;i++){
int x=get_father(a[i].a);
int y=get_father(a[i].b);
if(x!=y){
ans+=a[i].c;
father[x]=y;
}
}
cout<<ans;
return 0;
}
不知为何只输出0,望各位大佬解答本蒟蒻的问题