题解 P6415 【[COCI2014-2015#1] KLOPKA】
找出横坐标或纵坐标之间相差最大的长度,即是正方形边长。
分别存储最大和最小的横坐标、纵坐标,分别作差求得平面内最大跨度,将其作为边长平方后输出。
这算是一个生活常识吧。可以画图辅助理解。
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n,x,y,maxx,minx,maxy,miny;
scanf("%d%d%d",&n,&x,&y);//预处理一组,方便判断
maxx=minx=x,maxy=miny=y;
for(int i=1;i<n;i++)
{
scanf("%d%d",&x,&y);
maxx=max(maxx,x);
maxy=max(maxy,y);
minx=min(minx,x);
miny=min(miny,y);
}//“打擂台”的比较和数据更新
int a=max(maxx-minx,maxy-miny);
cout<<a*a;
return 0;
}
结束。