60求助

P1158 [NOIP2010 普及组] 导弹拦截

``` #include <stdio.h> #include <algorithm> using namespace std; struct dia { int x,y,j1,j2; }arr[100005]; bool cmp(dia a,dia b) { return a.j1 > b.j1; } int main() { int x_1,y_1,x_2,y_2,n,a,b; scanf("%d %d %d %d %d",&x_1,&y_1,&x_2,&y_2,&n); for(int i = 1; i <= n; i++) { scanf("%d %d",&arr[i].x,&arr[i].y); arr[i].j1 = (arr[i].x - x_1) * (arr[i].x - x_1) + (arr[i].y - y_1) * (arr[i].y - y_1); arr[i].j2 = (arr[i].x - x_2) * (arr[i].x - x_2) + (arr[i].y - y_2) * (arr[i].y - y_2); } sort(arr + 1,arr + 1 + n,cmp); int ans = arr[1].j1,r1 = 0,r2 = 0; for(int i = 2; i <= n; i++) { r1 = arr[i].j1; r2 = max(r2,arr[i - 1].j2); ans = min(r1 + r2,ans); } printf("%d",ans); return 0; }
by Perfect_Youth @ 2023-07-20 11:35:59


@[Taro2020](/user/401504)
by Perfect_Youth @ 2023-07-20 11:36:37


|