面接問題:都市面積

1392 ワード

题目:ある都市は建设しなければならなくて、あなたにN个の民家の座標X、Yをあげて、こんなに多くの民家をすべて都市に包むことを闻いて、都市の必要とする最小の面积はいくらです(都市は座標の轴の正方形に平行します)
入力:
  • 第一行為Nは、民家数(1=
  • の下はN行で、行ごとに2つの数字Xi,Yiは、住民の座標を表しています(-le 9=

  • 出力:
  • 都市に必要な最小面積
  • サンプル入力:
    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