一种排序 NYOJ
2017-05-11 本文已影响0人
三三At你
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
struct cc{
int n;
int l;
int w;
}shape[1005];
int cmp(struct cc x,struct cc y)
{
if(x.n == y.n)
if(x.l == y.l)
return x.w<=y.w;
else
return x.l<=y.l;
return x.n<=y.n;
}
int main()
{
int n;
int m;
int t;
int i;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
for(i=0; i<m; i++)
{
scanf("%d %d %d",&shape[i].n,&shape[i].l,&shape[i].w);
if(shape[i].l<shape[i].w)
{
t = shape[i].l;
shape[i].l = shape[i].w;
shape[i].w = t;
}
}
sort(shape,shape+m,cmp);//注意第二个参数是元素个数比下标边界大1
printf("%d %d %d\n",shape[0].n,shape[0].l,shape[0].w);
for(i=1; i<m; i++)
{
if(shape[i].n==shape[i-1].n&&\
shape[i].l==shape[i-1].l&&\
shape[i].w==shape[i-1].w)
continue;
else
printf("%d %d %d\n",shape[i].n,shape[i].l,shape[i].w);
}
}
}