导弹拦截题解
2024-09-16 13:02:58
发布于:北京
8阅读
0回复
0点赞
//你被骗了
全部评论 1
没想到吧,代码在这里
#include <bits/stdc++.h> using namespace std; int fun(int a,int b,int c,int d){ return (a - c) * (a - c) + (b - d) * (b - d); } struct bomb{ int l1,l2; }f[110000]; inline bool cmp(const bomb &a,const bomb &b){ return a.l1 < b.l1; } int main( ){ int n,i,j,k,a,b,c,d,y,z; cin >> a >> b >> c >> d; cin >> n; for(i = 1;i <= n;i ++){ cin >> y >> z; f[i].l1 = fun(a,b,y,z); f[i].l2 = fun(c,d,y,z); } sort(f + 1,f + n + 1,cmp); int ans = f[n].l1,u = -1; for(i = n - 1;i >= 1;i --){ u = max(u,f[i + 1].l2); ans = min(ans,u + f[i].l1); } cout<<ans<<endl; return 0; }
2024-09-16 来自 北京
0
有帮助,赞一个