代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
struct point {
int x, y, di;
} a, b, c[MAXN];
int N, ansa = INT_MAX, ansb = INT_MAX;
int dist(point p1, point p2) {
return (p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y);
}
int main() {
cin >> a.x >> a.y >> b.x >> b.y >> N;
for (int i = 0; i < N; i++) {
cin >> c[i].x >> c[i].y;
if (dist(c[i], a) < dist(c[i], b)) {
if (ansa == INT_MAX) ansa = dist(c[i], a);
else ansa = max(ansa, dist(c[i], a));
} else {
if (ansb == INT_MAX) ansb = dist(c[i], b);
else ansb = max(ansb, dist(c[i], b));
}
}
cout << ansa + ansb;
return 0;
}
结果