50 pts悬关
查看原帖
50 pts悬关
1016188
fztt_r9楼主2023/9/7 12:19
#include<bits/stdc++.h>
using namespace std;
int dis(int x1,int y1,int x2,int y2){
	return (y1-y2)*(y1-y2)+(x1-x2)*(x1-x2);
}
struct kun{
	int dis_a;
	int dis_b;
};
bool cmp(kun x,kun y)
{
	return x.dis_a>y.dis_a;
}
kun a[100086];
int main()
{
	int ax,ay,bx,by;
	cin>>ax>>ay>>bx>>by;
	int n;
	cin>>n;
	int x,y;
	for(int i=1;i<=n;i++){
		cin>>x>>y;
		a[i].dis_a=dis(x,y,ax,ay);
		a[i].dis_b=dis(x,y,bx,by);
	}
	sort(a+1,a+n+1,cmp);
	int i=1;
	while(a[i].dis_a>a[i].dis_b&&i<=n) i++;
//	cout<<a[i].dis_a<<' '<<i<<endl;
	int ans=0;
	int op=a[i].dis_a;
	for(i=i-1;i>=1;i--){
//		cout<<a[i].dis_b<<endl;;
		ans=max(ans,a[i].dis_b);
	}
	cout<<ans+op<<endl<<endl; 
	for(int i=1;i<=n;i++){
//		cout<<a[i].dis_a<<' '<<a[i].dis_b<<endl;
	}
}
2023/9/7 12:19
加载中...