比赛 防止颓废的小练习v0.2 评测结果 AAAAAAAAAA
题目名称 导弹拦截 最终得分 100
用户昵称 NVIDIA 运行时间 0.223 s
代码语言 C++ 内存使用 7.94 MiB
提交时间 2016-10-18 10:13:56
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
struct EDGE
{
    int a,b;
    bool operator<(const EDGE u)
    const {return a>u.a;}
} ANS[1000010];
int main()
{
    int x1,x2,y1,y2,x,y,s=0,t=0,n=0;
	freopen("missile2.in","r",stdin);
    freopen("missile2.out","w",stdout);
    cin>>x1>>y1>>x2>>y2;
    cin>>n;
    for(int i=0;i<n;i++)
    {
       cin>>x>>y;
        ANS[i].a=(x-x1)*(x-x1)+(y-y1)*(y-y1);
        ANS[i].b=(x-x2)*(x-x2)+(y-y2)*(y-y2);
    }
    sort(ANS,ANS+n);
    s=ANS[0].a;
    for(int i=0;i<n;i++)
    {
        s=min(s,ANS[i].a+t);
        t=max(t,ANS[i].b);
    }
    cout<<s;
    return 0;
}