一种排序

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

代码:

 #include<stdio.h>

 struct q
{
int num;
int len;
int wid;
}c[],cq; int main()
{
int i,j,m,n,t;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
for(i=;i<m;i++)
{
scanf("%d %d %d",&c[i].num,&c[i].len,&c[i].wid);
if(c[i].len<c[i].wid)
{
t=c[i].len;
c[i].len=c[i].wid;
c[i].wid=t;
}
}
for(j=;j<m;j++)
{
for(i=;i<=m;i++)
{
if(c[j].num<c[i].num)
{
cq=c[i];
c[i]=c[j];
c[j]=cq;
}
} }
for(j=;j<m;j++)
{
for(i=;i<=m;i++)
{
if(c[j].num==c[i].num&&c[j].len<c[i].len)
{
cq=c[i];
c[i]=c[j];
c[j]=cq; }
}
}
for(j=;j<m;j++)
{
for(i=;i<=m;i++)
{
if(c[j].num==c[i].num&&c[j].len==c[i].len&&c[j].wid<c[i].wid)
{
cq=c[i];
c[i]=c[j];
c[j]=cq;
}
} }
printf("%d %d %d\n",c[].num,c[].len,c[].wid);
for(i=;i<m;i++)
{
if(c[i].num==c[i-].num&&c[i].len==c[i-].len&&c[i].wid==c[i-].wid) continue;
printf("%d %d %d\n",c[i].num,c[i].len,c[i].wid);
} }
return ; }

最新文章

  1. Android 裁剪图片为圆形图片
  2. poj 3264 Balanced Lineup (RMQ)
  3. UIlabel多行文字自动换行 (自动折行)
  4. Extjs 下拉框下拉选项为Object object
  5. python的常用概念
  6. RAID磁盘阵列0、1、5、10
  7. [翻译]HBase 中的 ACID
  8. Bootstrap 3 与 Foundation 5
  9. C#-命名空间(十五)
  10. nxn随机矩阵乘以概率向量依旧是概率向量
  11. vue-router 结合源码分析原理
  12. 53. sql2005“备份集中的数据库备份与现有的xx数据库不同”解决方法
  13. springmvc cfx 整合
  14. 2018.07.20 atcoder Largest Smallest Cyclic Shift(贪心)
  15. 深入理解JAVA虚拟机阅读笔记4——虚拟机类加载机制
  16. python的N个小功能(找到要爬取的验证码链接,并大量下载验证码样本)
  17. Codeforces Round #408 (Div. 2)C. Bank Hacking(STL)
  18. java学习笔记—国际化(41)
  19. python3+requests:post请求四种传送正文方式(详解)
  20. javascript中按位操作的应用,如何快速取整 判断字符串是否是包含某字符串

热门文章

  1. 转:国内Top500Android应用分析报告
  2. Centos 6.x 安装Python 3.4.3
  3. Android 系统广播机制
  4. CVE-2014-4114 和 CVE-2014-3566
  5. 搭建企业内部DNS服务器,docker 部署内部 dnsmasq
  6. hdu 5358 First One 2015多校联合训练赛#6 枚举
  7. WebSocket 和 Socket 的区别
  8. 写码时应该缩进使用 tab 还是空格?
  9. HDU 6086 Rikka with String AC自动机 + DP
  10. svgo