度度熊有一张网格纸,但是纸上有一些点过的点,每个点都在网格点上,若把网格看成一个坐标轴平行于网格线的坐标系的话,每个点可以用一对整数x,y来表示。度度熊必须沿着网格线画一个正方形,使所有点在正方形的内部或者边界。然后把这个正方形剪下来。问剪掉正方形的最小面积是多少。
自己写的程序如下:
#include<iostream>
using namespace std;
int max(int x,int y)
{
return x>y?x:y;
}
int min(int x,int y)
{
return x<y?x:y;
}
int main()
{
int n;
while(cin>>n)
{
int x,y;
cin>>x>>y;
int up=y;
int down=y;
int left=x;
int right=x;
for(int i=1;i<n;i++)
{
cin>>x>>y;
up=max(up,y);
down=min(down,y);
left=min(left,x);
right=max(right,x);
}
cout<<max((up-down),(right-left))*max((up-down),(right-left))<<endl;
}
return 0;
}
#include <iostream>
#include<string>
#include<vector>
#include<sstream>
using namespace std;
int main()
{
int zongshu;
while(cin>>zongshu)
{
int x;
int y;
int xmin,xmax;
int ymin,ymax;
cin>>x>>y;
xmin=xmax=x;
ymin=ymax=y;
for(int i=2;i<=zongshu; i++)
{
cin>>x>>y;
xmin=min(x,xmin);
ymin=min(y,ymin);
xmax=max(x,xmax);
ymax=max(y,ymax);
}
int temp=max(ymax-ymin,xmax-xmin);
cout<<temp*temp<<endl;
}
return 0;
}
相形见绌啊。。
1)定义变量没有别人的好理解,虽然up/down/left/right可以明白啥意思,但是和xmin、、、在写程序的时候还是差很多
2)代码紧凑性也很差
3)也是最坑的一点,在循环的这个问题上,一定要注意初始值是啥???cin>>x>>y的位置?
4) 注意最后的结果输出是啥,如果定义变量,会存在强制转换的问题。
到处是坑~自己还太嫩~