一种排序

时间限制:3000 ms  |  内存限制:65535 KB
难度:3 
描述:现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);
1.按照编号从小到大排序
2.对于编号相等的长方形,按照长方形的长排序;
3.如果编号和长都相同,按照长方形的宽排序;
4.如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形;最后排好序按照指定格式显示所有的长方形; 
输入:第一行有一个整数 0<n<10000,表示接下来有n组测试数据;每一组第一行有一个整数 0<m<1000,表示有m个长方形;接下来的m行,每一行有三个数 ,第一个数表示长方形的编号,第二个和第三个数值大的表示长,数值小的表示宽,相等说明这是一个正方形(数据约定长宽与编号都小于10000);输出顺序输出每组数据的所有符合条件的长方形的 编号 长 宽
样例输入
  1. 1
  2. 8
  3. 1 1 1
  4. 1 1 1
  5. 1 1 2
  6. 1 2 1
  7. 1 2 2
  8. 2 1 1
  9. 2 1 2
  10. 2 2 1
样例输出
  1. 1 1 1
  2. 1 2 1
  3. 1 2 2
  4. 2 1 1
  5. 2 2 1

代码:

  1. #include<stdio.h>
  2.  
  3. struct q
  4. {
  5. int num;
  6. int len;
  7. int wid;
  8. }c[],cq;
  9.  
  10. int main()
  11. {
  12. int i,j,m,n,t;
  13. scanf("%d",&n);
  14. while(n--)
  15. {
  16. scanf("%d",&m);
  17. for(i=;i<m;i++)
  18. {
  19. scanf("%d %d %d",&c[i].num,&c[i].len,&c[i].wid);
  20. if(c[i].len<c[i].wid)
  21. {
  22. t=c[i].len;
  23. c[i].len=c[i].wid;
  24. c[i].wid=t;
  25. }
  26. }
  27. for(j=;j<m;j++)
  28. {
  29. for(i=;i<=m;i++)
  30. {
  31. if(c[j].num<c[i].num)
  32. {
  33. cq=c[i];
  34. c[i]=c[j];
  35. c[j]=cq;
  36. }
  37. }
  38.  
  39. }
  40. for(j=;j<m;j++)
  41. {
  42. for(i=;i<=m;i++)
  43. {
  44. if(c[j].num==c[i].num&&c[j].len<c[i].len)
  45. {
  46. cq=c[i];
  47. c[i]=c[j];
  48. c[j]=cq;
  49.  
  50. }
  51. }
  52. }
  53. for(j=;j<m;j++)
  54. {
  55. for(i=;i<=m;i++)
  56. {
  57. if(c[j].num==c[i].num&&c[j].len==c[i].len&&c[j].wid<c[i].wid)
  58. {
  59. cq=c[i];
  60. c[i]=c[j];
  61. c[j]=cq;
  62. }
  63. }
  64.  
  65. }
  66. printf("%d %d %d\n",c[].num,c[].len,c[].wid);
  67. for(i=;i<m;i++)
  68. {
  69. if(c[i].num==c[i-].num&&c[i].len==c[i-].len&&c[i].wid==c[i-].wid) continue;
  70. printf("%d %d %d\n",c[i].num,c[i].len,c[i].wid);
  71. }
  72.  
  73. }
  74. return ;
  75.  
  76. }

NYOJ8——一种排序的更多相关文章

  1. 一种排序(nyoj8)(简单排序)

    一种排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 如今有非常多长方形.每个长方形都有一个编号,这个编号能够反复.还知道这个长方形的宽和长,编号.长.宽都是整数 ...

  2. iOS可视化动态绘制八种排序过程

    前面几篇博客都是关于排序的,在之前陆陆续续发布的博客中,我们先后介绍了冒泡排序.选择排序.插入排序.希尔排序.堆排序.归并排序以及快速排序.俗话说的好,做事儿要善始善终,本篇博客就算是对之前那几篇博客 ...

  3. 模板化的七种排序算法,适用于T* vector<T>以及list<T>

    最近在写一些数据结构以及算法相关的代码,比如常用排序算法以及具有启发能力的智能算法.为了能够让写下的代码下次还能够被复用,直接将代码编写成类模板成员函数的方式,之所以没有将这种方式改成更方便的函数模板 ...

  4. 几种排序算法的学习,利用Python和C实现

    之前学过的都忘了,也没好好做过总结,现在总结一下. 时间复杂度和空间复杂度的概念: 1.空间复杂度:是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了,简单说就是递归集算 ...

  5. ACM 一种排序

    一种排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数 ...

  6. 秒杀9种排序算法(JavaScript版)

    一:你必须知道的 1> JS原型 2> 排序中的有序区和无序区 3> 二叉树的基本知识 如果你不知道上面三个东西,还是去复习一下吧,否则,看下面的东西有点吃力. 二:封装丑陋的原型方 ...

  7. nyoj 8 一种排序

    一种排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数 ...

  8. JavaScript新手学习笔记3——三种排序方式(冒泡排序、插入排序、快速排序)

    每种编程语言学到数组的时候,都会讲到排序算法,当时学C语言的时候,卡在排序算法.今天来总结一下javascript中如何实现三种排序算法. 1.冒泡排序(默认升序排列哦) 原理: 冒泡排序的原理,顾名 ...

  9. java数组中的三种排序方法中的冒泡排序方法

    我记得我大学学java的时候,怎么就是搞不明白这三种排序方法,也一直不会,现在我有发过来学习下这三种方法并记录下来. 首先说说冒泡排序方法:冒泡排序方法就是把数组中的每一个元素进行比较,如果第i个元素 ...

随机推荐

  1. 关于android分享(sharedsdk的简单使用)

    老早就使用了.可是如今才写,惰性太大,如今改 如今做产品的话相信大家基本都做分享吧.一个是项目的需求须要,另一个是能够非常好的宣传自己的产品.其它的优点依据情况而论 事实上每一个平台都有它自己的文档, ...

  2. UITableView性能的优化

    转载自http://hi.baidu.com/iosme/item/24e34c465b8b1636fb896075 1.使用不透明视图.
 不透明的视图可以极大地提高渲染的速度.因此如非必要,可以将 ...

  3. 【Discuz】ucenter通讯失败与Discuz的头像无法显示

    假设是Discuz论坛的一些小样式图片.仅仅须要升级一下Discuz论坛的论坛或者,直接把整个网站的css的首域名替换一下.比方将127.0.0.1:8080/..开头的东西全改成127.0.0.1: ...

  4. react 创建组件 (四)Stateless Functional Component

    上面我们提到的创建组件的方式,都是用来创建包含状态和用户交互的复杂组件,当组件本身只是用来展示,所有数据都是通过props传入的时候,我们便可以使用Stateless Functional Compo ...

  5. 微信小程序 项目实战(二)board 首页

    1.项目结构 2.页面 (1)数据(逻辑) board.js // pages/board/board.js Page({ /** * 页面的初始数据 */ data: { imgWrap: [] } ...

  6. html5 式程序员表白

    html5 式程序员表白 王海庆 于 星期三, 04/06/2014 - 00:44 提交 今天是个好日子,2014年5月20日,表白的最佳时机,虽说孩子已经四岁.结婚已经五年.可是也不能够偷懒.于是 ...

  7. PHP读取excel(6)

    有时候我们只需要读取某些指定sheet,具体代码如下: <?php header("Content-Type:text/html;charset=utf-8"); //引入读 ...

  8. python socket初探

    先看一段代码 import socket import sys import re def getServerContent(url): host_ip = socket.gethostbyname( ...

  9. linux下DOS工具

    1.Hping3/Nping TCP/IP数据包生成工具,用于压力测试,安全审计 2.使用hping进行DOS攻击 命令:hping3 -c 10000 -d 120 -S -w 64 -p 80 - ...

  10. Enum to String 一般用法

    目录 一.Enum Review 二.使用name()方法转换为String 三.使用toString()方法转换为String 四.使用成员属性转换为String 一.Enum Review ​ J ...