nyoj8 一种排序(sort三级排序)

来源:互联网 发布:网络喊麦最火的歌曲 编辑:程序博客网 时间:2024/05/16 09:06
 每天看别人做这道题 也就想着自己做做。。就是个排序而已。我只是个菜鸟啊啊啊#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;struct M{int num,a,b;}c[1001];bool cmp(M x,M y){if(x.num<y.num) return true;//先对编号排序if(x.num==y.num&&x.a<y.a) return true;//如果编号相等再对长排序if(x.num==y.num&&x.a==y.a&&x.b<y.b) return true;//如果长相等在对宽排序return false;}int main(){int t,i,temp,n,j,q,mark;scanf("%d",&t);while(t--){memset(&c,0,sizeof(&c));scanf("%d",&n);for(i=0;i<n;i++){scanf("%d %d %d",&c[i].num,&c[i].a,&c[i].b);if(c[i].a<c[i].b)temp=c[i].a,c[i].a=c[i].b,c[i].b=temp;//为了保证c[i].a>a[i].b,也就是说c[i].a为长,c[i].b为宽}sort(c,c+n,cmp);for(i=0;i<n;i++)if(c[i].num==c[i+1].num&&c[i].a==c[i+1].a&&c[i].b==c[i+1].b)//如果相等只输出一次。continue;elseprintf("%d %d %d\n",c[i].num,c[i].a,c[i].b);}return 0;}                

0 0
原创粉丝点击