此题涉及到:
strcut 结构体的排序问题 水题
题目链接:http://oj.nyist.me/OJ/contest_problem.php?cid=1033&pid=5
AC代码:
#include<bits/stdc++.h>
using namespace std;
struct aa
{
int q,l,w;
} a[10001];
bool cmp(aa x,aa y)
{
if(x.q==y.q)
{
return x.l<y.l;
if(x.l==y.l)
return x.w<y.w;
}
return x.q<y.q;
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int m;
scanf("%d",&m);
for(int i=0; i<m; i++)
{
scanf("%d%d%d",&a[i].q,&a[i].l,&a[i].w);
if(a[i].l<a[i].w)//数值大的表示长,数值小的表示宽
{
int j;
j=a[i].l;
a[i].l=a[i].w;
a[i].w=j;
}
}
sort(a,a+m,cmp);
// printf("==\n");
for(int i=0;i<m;i++)
{
if(a[i+1].q==a[i].q&&a[i+1].l==a[i].l&&a[i+1].w==a[i].w)//编号 长宽相等输出一个
continue;
else
printf("%d %d %d\n",a[i].q,a[i].l,a[i].w);
}
}
}