导弹拦截の题解 FROM CSDN
2023-08-14 19:09:57
发布于:广东
34阅读
0回复
0点赞
运行用时:42ms
内存消耗:3.02MB
虽然内存消耗有点大,不过运行还是蛮快的
#include<iostream>
#include<algorithm>
using namespace std;
const int M = 100006, inf = 10000000;
struct T{
int x;
int y;
int a;
int b;
}t[M];
int x_1, y_1, x_2, y_2;
int n;
int cmp(T a, T b){
return a.a>b.a;
}
int main(){
cin>>x_1>>y_1>>x_2>>y_2;
cin>>n;
for(int i = 1; i<=n; i++){
cin>>t[i].x;
cin>>t[i].y;
t[i].a = (t[i].x - x_1)*(t[i].x-x_1) + (t[i].y-y_1)*(t[i].y-y_1);
t[i].b = (t[i].x - x_2)*(t[i].x-x_2) + (t[i].y-y_2)*(t[i].y-y_2);
}
sort(t+1,t+n+1,cmp);
int r2=0,ans=inf;
for(int i=1;i<=n;i++){
r2=max(t[i-1].b,r2);
ans=min(ans,t[i].a+r2);
}
cout<<ans<<endl;
return 0;
}
另:
这里空空如也
有帮助,赞一个