题解 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;
}

结束。