面接問題:都市面積
1392 ワード
题目:ある都市は建设しなければならなくて、あなたにN个の民家の座標X、Yをあげて、こんなに多くの民家をすべて都市に包むことを闻いて、都市の必要とする最小の面积はいくらです(都市は座標の轴の正方形に平行します)
入力:第一行為Nは、民家数(1=
の下はN行で、行ごとに2つの数字Xi,Yiは、住民の座標を表しています(-le 9=
出力:都市に必要な最小面積 サンプル入力:
サンプル出力:
コード:
最初の行#define_CRT_SECURE_NO_WARNINGSは主にerror C 4996:'scanf'エラーを解決するためです.
コード参照リンク:
https://blog.csdn.net/zl_666/article/details/50529085
入力:
出力:
2
0 0
2 2
サンプル出力:
4
コード:
最初の行#define_CRT_SECURE_NO_WARNINGSは主にerror C 4996:'scanf'エラーを解決するためです.
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
using namespace std;
#define INF 03xffffff
struct node
{
long long x, y;
}d[2000];
int main()
{
//
int n;
while (scanf("%d", &n) != EOF)
{
int i;
memset(d,0,sizeof(d));
// , , ,
long long mx1 = 0, my2 = 0, kx1 = 0, ky2 = 0;
for (i = 0; i < n; i++)
{
scanf("%lld%lld", &d[i].x, &d[i].y);
if (d[mx1].x < d[i].x)
mx1 = i;
if (d[my2].y < d[i].y)
my2 = i;
if (d[kx1].x > d[i].x)
kx1 = i;
if (d[ky2].y > d[i].y)
ky2 = i;
}
long long c;
// ,
if (d[mx1].x-d[kx1].x>d[my2].y-d[ky2].y)
c = (d[mx1].x - d[kx1].x)* (d[mx1].x - d[kx1].x);
else
c = (d[my2].y - d[ky2].y)*(d[my2].y - d[ky2].y);
printf("%lld
",c);
}
return 0;
}
コード参照リンク:
https://blog.csdn.net/zl_666/article/details/50529085