[土狗之路]coursera C语言进阶 习题 寻找平面上的极大点

来源:互联网 发布:linux 命令行 编辑:程序博客网 时间:2024/06/11 21:01

这道题也是结构体比较简单。

直接上题:

编程题#4:寻找平面上的极大点

来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述

在一个平面上,如果有两个点(x,y),(a,b),如果说(x,y)支配了(a,b),这是指x>=a,y>=b;

用图形来看就是(a,b)坐落在以(x,y)为右上角的一个无限的区域内。

给定n个点的集合,一定存在若干个点,它们不会被集合中的任何一点所支配,这些点叫做极大值点。

编程找出所有的极大点,按照x坐标由小到大,输出极大点的坐标。

本题规定:n不超过100,并且不考虑点的坐标为负数的情况。

输入

输入包括两行,第一行是正整数n,表示是点数,第二行包含n个点的坐标,坐标值都是整数,坐标范围从0到100,输入数据中不存在坐标相同的点。

输出

按x轴坐标最小到大的顺序输出所有极大点。

输出格式为:(x1,y1),(x2,y2),...(xk,yk)

注意:输出的每个点之间有","分隔,最后一个点之后没有",",少输出和多输出都会被判错

样例输入

51 2 2 2 3 1 2 3 1 4

样例输出

(1,4),(2,3),(3,1)


然后是代码:

#include<iostream>using namespace std;struct point {//用以记录每一个点int x;//横坐标int y;//纵坐标};int main() {int n;cin >> n;point points[100];//从来接受所有的点for (int i = 0; i < n; i++) cin >> points[i].x >> points[i].y;point maxs[100];//用来保存所有的极大点int k = 0;for (int i = 0; i < n; i++) {bool max = true;//初始化这个点没有被支配for (int j = 0; j < n; j++) {if (j== i)continue;else if (((points[j].x >= points[i].x)&&(points[j].y >= points[i].y)) == true)//判断是否被支配,如果支配,则将max改为假max = false;}if (max == true) {//把没有被支配的点保存下来maxs[k] = points[i];k++;}}k--;//因为之前最后一次多了一个k++,所以这里-回来for (int i = 0; i < k + 1; i++) {//排序for (int j = i+1; j < k + 1; j++) {if (maxs[i].x > maxs[j].x) {point temp = maxs[i];maxs[i] = maxs[j];maxs[j] = temp;}else if (maxs[i].x == maxs[j].x&&maxs[i].y > maxs[j].y) {point temp = maxs[i];maxs[i] = maxs[j];maxs[j] = temp;}}}for (int i = 0; i < k+1 ; i++) {//输出,最后一次没有,cout << '(' << maxs[i].x << ',' << maxs[i].y << ')';if (i == k)cout << endl;elsecout << ',';}return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 刺扎到手里拿不出来怎么办 军官证解锁片丢了怎么办 六安市人民医院药品停用了怎么办 信无法寄到该怎么办 5个月的宝宝光有屎沫怎么办 胸牌的别针坏了怎么办 工资表税金扣多了怎么办? 装修公司不发放工程怎么办 公司不给开收入证明怎么办 装修公司不付工人工资怎么办 收入证明少500元怎么办 dnf二级输错了怎么办 如果受到法律的伤害怎么办 86岁了还怕死怎么办 风衣的腰带丢了怎么办 成为伪娘身上的毛怎么办 军官升不上去了怎么办 王者荣耀代练封号怎么办 cf淘宝代练封号怎么办 买音乐会的票过期怎么办 十年多年前被怨错拘留了怎么办 与室友关系闹僵怎么办 开庭后被告威胁我们证人怎么办 开车撞了豪车怎么办 我把人撞了全责怎么办 开车撞伤人没钱赔怎么办 开车撞伤无证驾驶人怎么办 开车把人撞伤了只买交强险怎么办 开车撞伤人赔不起怎么办 如果车撞死人了怎么办 给车撞了跑了怎么办 开车把人撞死了怎么办 开车把人蹭了怎么办 驾照被扣54分怎么办? 驾照被扣了12分怎么办 驾驶证丢失后被扣分怎么办 驾照扣了三十分怎么办 一次被扣了12分怎么办 驾照被扣35分后怎么办 我驾驶证扣了6分怎么办 c1驾照被扣6分怎么办