题目描述:
从财经大学游泳回来后,zz打算在金沙学府中心花园
建造一个长方形的游泳池。他已经设置了坐标轴,游泳池的边与坐标轴平行。当然,矩形的面积必须为正。z2
游泳池的先画在图纸上,游泳池的四条边与坐标轴平行。
Z2想到一个问题,擦掉长方形游泳池的若千个顶点
后,初始矩形的剩余n个顶点是否提供了足够的信息来
恢复游泳池的面积。
输入格式:
输入的第一行包含单个整数n (1≤n≤4)-zz没有删除的
顶点数。
以下n行中的每一行都包含两个整数xi和yi (-1000≤xiyi≤1000)-剩余的第i个顶点的坐标。顶点以任意顺序给出。
可以保证这些点是某个矩形的不同顶点,该矩形具有正面积,且其边与坐标轴平行。
输出格式:
如果初始矩形的区域可以由剩余的点唯一确定,则输出
矩形面积。否则,打印-1。
游泳池设计,c语言问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 社区专家-Monster-XH 2023-04-15 15:49关注
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; vector<int> x(n), y(n); for (int i = 0; i < n; i++) { cin >> x[i] >> y[i]; } // 将顶点按照横坐标从小到大排序,如果横坐标相同,则按照纵坐标从小到大排序 sort(x.begin(), x.end()); sort(y.begin(), y.end()); // 确定长方形的左下角和右上角坐标 int x1 = x[0], y1 = y[0], x2 = x[n - 1], y2 = y[n - 1]; // 计算长方形面积 int area = (x2 - x1) * (y2 - y1); // 如果面积为正,则输出面积;否则输出 -1 if (area > 0) { cout << area << endl; } else { cout << -1 << endl; } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
- ¥15 gdf格式的脑电数据如何处理matlab
- ¥20 重新写的代码替换了之后运行hbuliderx就这样了
- ¥100 监控抖音用户作品更新可以微信公众号提醒
- ¥15 UE5 如何可以不渲染HDRIBackdrop背景
- ¥70 2048小游戏毕设项目
- ¥20 mysql架构,按照姓名分表
- ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
- ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
- ¥15 delphi webbrowser组件网页下拉菜单自动选择问题