/*给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所
有点框在内。长方形框的边分别平行于x和y坐标轴,点落在边上也算是被框在内。*/
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int xy(vector<int>&vx,vector<int>&vy)
{
if ((vx.size()==1&&vy.size()==1)||(vx.size()==0&&vy.size()==0))
{
return 0;
}
else
{
sort(vx.begin(),vx.end());
sort(vy.begin(),vy.end());
int x1=vx[0];
int y1=vy[0];
int x2=vx[vx.size()-1];
int y2=vy[vy.size()-1];
if (x1==x2||y1==y2||(x1==0&&y1==0)||(x2==0&&y2==0))
{
return 0;
}
cout<<x1<<" "<<y1<<" "<<x2<<" "<<y2<<endl;
vx.clear();
vy.clear();
}
}
int main()
{
vector<int>vx,vy;
int x,y;
while (cin>>x>>y)
{
if (x>1000||x<-1000||y>1000||y<-1000)
{
return 0;
}
if (x==0&&y==0)
{
xy(vx,vy);
}
else
{
vx.push_back(x);
vy.push_back(y);
}
}
}
2015华为校招模拟题-最小长方形
最新推荐文章于 2021-01-08 13:55:19 发布