比赛 20231212_2010联赛题复现 评测结果 AAAAAAAAAA
题目名称 导弹拦截 最终得分 100
用户昵称 ┭┮﹏┭┮ 运行时间 0.051 s
代码语言 C++ 内存使用 1.95 MiB
提交时间 2023-12-12 19:57:01
显示代码纯文本
#include <bits/stdc++.h> 
using namespace std;
#define ll long long
const int N = 1e5+10;
int a,b,c,d,n;
int dis(int x,int y,int xx,int yy){
    return (x-xx)*(x-xx)+(y-yy)*(y-yy);
}
struct made{
    int x,y;
    bool operator < (const made &u)const{
        return x > u.x;
    }
}e[N];
int main(){
    freopen("missile2.in","r",stdin);
    freopen("missile2.out","w",stdout);
    scanf("%d%d%d%d%d",&a,&b,&c,&d,&n); 
    for(int i = 1;i <= n;i++){
        int x,y;
        scanf("%d%d",&x,&y);
        e[i].x = dis(x,y,a,b),e[i].y = dis(x,y,c,d);
    }
    sort(e+1,e+1+n);
    int ans = e[1].x,s1 = 0;
    for(int i = 2;i <= n;i++){
        s1 = max(s1,e[i-1].y);
        ans = min(ans,s1+e[i].x);
    }
    printf("%d\n",ans);
    
    return 0;
    
}