https://www.luogu.com.cn/problem/P1158
#include<iostream> #include<map> using namespace std; struct node{ int x; int y; }arr[100001]; int main(){ int x1, y1, x2, y2, n; int dis1, dis2, max1 = 0, max2 = 0, sum = 0; cin >> x1 >> y1 >> x2 >> y2; cin >> n; for (int i = 0; i < n; i++){ cin >> arr[i].x >> arr[i].y; dis1 = (x1 - arr[i].x)*(x1 - arr[i].x) + (y1 - arr[i].y)*(y1 - arr[i].y); dis2 = (x2 - arr[i].x)*(x2 - arr[i].x) + (y2 - arr[i].y)*(y2 - arr[i].y); if (dis1 < dis2){ if (dis1 > max1){ max1 = dis1; } } else{ if (dis2 > max2){ max2 = dis2; } } } sum = max1 + max2; cout << sum << endl; return 0; }