稲沊灆傑
2023-08-16 15:05:49
发布于:内蒙古
75阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
struct Info{
int d1,d2;
bool operator<(const Info &A){
return d1<A.d1;
}
}a[111111];
int n,X1,Y1,X2,Y2,f[111111];
int main(){
scanf("%d%d%d%d",&X1,&Y1,&X2,&Y2);
scanf("%d",&n);
for(int i=1;i<=n;i++){
int x,y;
scanf("%d%d",&x,&y);
a[i].d1=(x-X1)(x-X1)+(y-Y1)(y-Y1);
a[i].d2=(x-X2)(x-X2)+(y-Y2)(y-Y2);
}
sort(a+1,a+n+1);
f[n+1]=0;
for(int i=n;i;--i)
f[i]=max(f[i+1],a[i].d2);
int ans=1<<30;
for(int i=0;i<=n;i++)
ans=min(ans,a[i].d1+f[i+1]);
printf("%d\n",ans);
return 0;
}
全部评论 1
比较快吧
2023-08-16 来自 内蒙古
0
有帮助,赞一个