问题描述
无聊的龙随手拿起一张纸,随手画了一个坐标系,随手在坐标系里点点点。然后,他关心一个问题,如果用一个水平放置(不会旋转)的正方形来覆盖这些点点点,这个正方形的面积最小为多少呢?
输入格式
第一行一个整数 n,表示点点的数量。
接下来共 n 行,每行 2 个正整数 (a,b)(a,b),表示该一个点到 X 轴距离为 b,到 Y轴距离为 a,为了方便你统计,程序龙只会在X轴的上方,Y轴的右方画点点。
输入数据保证存在一个合法的正方形(面积非零)去覆盖这些点点。
输出格式
一个整数,表示能覆盖所有点点的最小正方形的面积。
输入数据 1
3
1 1
2 1
2 2
输出数据 1
1
c++点点问题实在不会,教一下
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
threenewbee 2023-08-13 11:27关注无非就是求x y的差,取那个大的作为边长:
#include <stdio.h> int main() { int n; scanf("%d", &n); int x, y; scanf("%d%d", &x, &y); int minx = x, maxx = x; int miny = y, maxy = y; for (int i = 0; i < n; i++) { scanf("%d%d", &x, &y); if (minx > x) minx = x; if (miny > y) miny = y; if (maxx < x) maxx = x; if (maxy < y) maxy = y; } if ((maxy - miny) > (maxx - maxy)) printf("%d", (maxy - miny) * (maxy - miny)); else printf("%d", (maxx - minx) * (maxx - minx)); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用