解决了
by 「已注销」 @ 2018-05-06 08:45:54
我也RE
by 光明正大 @ 2018-12-24 12:30:50
#include<algorithm>
#include<iostream>
using namespace std;
int n,ans,x1,x2,y1,y2;
struct point{
int x,y;
bool operator<(const point &l) const
{
if(x==l.x) return y<l.y;
return x<l.x;
}
} a[3030];
bool b[5050][5050];
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i].x>>a[i].y,b[a[i].x][a[i].y]=1;
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if((a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j].y)<ans) continue;
if(i!=j)
{
x1=a[i].x+a[i].y-a[j].y,y1=a[i].y+a[j].x-a[i].x;
if(!b[x1][y1]) continue;
x2=a[j].x+a[i].y-a[j].y,y2=a[j].y+a[j].x-a[i].x;
if(!b[x2][y2]) continue;
ans=max(ans,(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
}
}
cout<<ans;
return 0;
}
by 光明正大 @ 2018-12-24 12:31:04
```cpp
#include<algorithm>
#include<iostream>
using namespace std;
int n,ans,x1,x2,y1,y2;
struct point{
int x,y;
bool operator<(const point &l) const
{
if(x==l.x) return y<l.y;
return x<l.x;
}
} a[3030];
bool b[5050][5050];
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i].x>>a[i].y,b[a[i].x][a[i].y]=1;
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if((a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j].y)<ans) continue;
if(i!=j)
{
x1=a[i].x+a[i].y-a[j].y,y1=a[i].y+a[j].x-a[i].x;
if(!b[x1][y1]) continue;
x2=a[j].x+a[i].y-a[j].y,y2=a[j].y+a[j].x-a[i].x;
if(!b[x2][y2]) continue;
ans=max(ans,(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
}
}
cout<<ans;
return 0;
}
```
by 光明正大 @ 2018-12-24 12:31:20