思路:找出最大,最小横坐标,最大,最小纵坐标;
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define INF 03xffffff
using namespace std;
struct node
{
long long x,y;
}d[2000];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int i;
memset(d,0,sizeof(d));
long long mx1=0,my2=0,kx1=0,ky2=0;//记录最大横坐标,最大纵坐标,最小横坐标 ,最小纵坐标。
for(i=0;i<n;i++)
{
scanf("%lld%lld",&d[i].x,&d[i].y);
if(d[mx1].x<d[i].x)
mx1=i;
if(d[my2].y<d[i].y)
my2=i;
if(d[kx1].x>d[i].x)
kx1=i;
if(d[ky2].y>d[i].y)
ky2=i;
}
long long c;
if( d[mx1].x - d[kx1].x > d[my2].y - d[ky2].y )//哪个间距最大,就以哪个间距为边长建城市。
c = (d[mx1].x - d[kx1].x)* (d[mx1].x - d[kx1].x);
else
c = (d[my2].y - d[ky2].y)*(d[my2].y - d[ky2].y );
printf("%lld\n",c);
}
return 0;
}