在这里
```
int tmp=ju[i].zhi;
int tmp1=max((biao[ju[i+1].wei][0]-x2)*(biao[ju[i+1].wei][0]-x2)+(biao[ju[i+1].wei][1]-y2)*(biao[ju[i+1].wei][1]-y2),tmp1);
if(tmp1+tmp<ans)
ans=tmp1+tmp;
```
要记录之前的状态
改为
```
#include <bits/stdc++.h>
using namespace std;
int x1, ya, x2,y2,n,biao[100010][2],ans, ss;
struct node{
int zhi,wei;
}ju[100010];
bool cmp(node x,node y){
return x.zhi<y.zhi;
}
int main(){
scanf("%d%d%d%d", &x1, &ya, &x2, &y2);
scanf("%d", &n);
for(int i=1;i<=n;i++){
cin >> biao[i][0] >> biao[i][1];
ju[i].zhi=(((biao[i][0]-x1)*(biao[i][0]-x1))+((biao[i][1]-ya)*(biao[i][1]-ya)));
ju[i].wei=i;
}
sort(ju + 1, ju + n + 1, cmp);
ans=ju[n].zhi;
for(int i=n-1;i>=0;i--){
int tmp=ju[i].zhi;
int tmp1 = max((((biao[ju[i+1].wei][0]-x2)*(biao[ju[i+1].wei][0]-x2))+((biao[ju[i+1].wei][1]-y2)*(biao[ju[i+1].wei][1]-y2))), ss);
if(tmp1+tmp<ans)
ans=tmp1+tmp;
ss = tmp1;
}
printf("%d", ans);
return 0;
}
```
by _Passerby_ @ 2023-10-02 11:17:26
本来以为是排序稳定性的问题写了半天归并QAQ
by _Passerby_ @ 2023-10-02 11:18:46