百度 裁剪网格纸 贪心

题目描述

度度熊有一张网格纸,但是纸上有一些点过的点,每个点都在网格点上,若把网格看成一个坐标轴平行于网格线的坐标系的话,每个点可以用一对整数x,y来表示。度度熊必须沿着网格线画一个正方形,使所有点在正方形的内部或者边界。然后把这个正方形剪下来。问剪掉正方形的最小面积是多少。

输入描述:

第一行一个数n(2≤n≤1000)表示点数,接下来每行一对整数xi,yi(-1e9<=xi,yi<=1e9)表示网格上的点

输出描述:

一行输出最小面积

示例1

输入

20 00 3

输出

9
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long int 
#define INF 1<<30
int main()
{
    ll n;
    while(cin>>n)
    {
        int x,y;
        cin>>x>>y;
        int x_max=x,x_min=x,y_max=y,y_min=y;
        for(int i=0;i<n-1;++i)
        {
            cin>>x>>y;
            if(x>x_max) x_max=x;
            if(x<x_min) x_min=x;
            if(y>y_max) y_max=y;
            if(y<y_min) y_min=y; 
        }
        //cout<<x_max<<x_min<<y_max<<y_min<<endl; 
        cout<<max(abs(x_max-x_min),abs(y_max-y_min))*max(abs(x_max-x_min),abs(y_max-y_min))<<endl;
    }
    return 0;
}
Last modification:January 11th, 2020 at 10:24 pm
如果觉得我的文章对你有用,请随意赞赏