比赛 |
20161223 |
评测结果 |
AAAAAAAAAA |
题目名称 |
哞投 |
最终得分 |
100 |
用户昵称 |
Shirry |
运行时间 |
1.336 s |
代码语言 |
C++ |
内存使用 |
19.37 MiB |
提交时间 |
2016-12-23 19:50:20 |
显示代码纯文本
#include<cstdio>
#include<algorithm>
#define INF 99999999
using namespace std;
struct poi{
int x,y;
};
poi B[1000];
int n,C[1000000]={0},F[1000000]={0},p=INF;
int u[1000000]={0},v[1000000]={0},w[1000000]={0};
int cmp(int x,int y){
return w[x]<w[y];
}
int Findfather(int x){
if(F[x]==x)return x;
F[x]=Findfather(F[x]);
return F[x];
}
int main(){
freopen("moocast.in","r",stdin);
freopen("moocast.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++){
int x,y;
scanf("%d%d",&x,&y);
B[i].x=x;
B[i].y=y;
}
int k=1;
for(int i=1;i<=n*n;i++){C[i]=i;F[i]=i;}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
int a,b;
a=(B[i].x-B[j].x)*(B[i].x-B[j].x);
b=(B[i].y-B[j].y)*(B[i].y-B[j].y);
u[k]=i;
v[k]=j;
w[k]=a+b;
k++;
}
}
sort(C+1,C+k+1,cmp);
for(int i=1;i<=k;i++){
int d=C[i];
int xx=Findfather(u[d]);
int yy=Findfather(v[d]);
if(xx!=yy){
p=w[d];
F[xx]=yy;
}
}
printf("%d",p);
return 0;
}