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<iostream>
#include<algorithm>
using namespace std;
struct cfx
{
int length;
int width;
int num;
};
int cmp(cfx a,cfx b)
{
if(a.num!=b.num)
return a.num<b.num;//升序
else if(a.num==b.num &&a.length!=b.length)
return a.length<b.length;
else if(a.num==b.num &&a.length==b.length)
return a.width<b.width;
}
int main()
{
int n,m,i,k;
cfx a[1000];
cfx b[1000];
cin>>n;
while(n--)
{
k=0;
cin>>m;//m个长方形
for(i=0;i<m;i++)
{
cin>>a[i].num>>a[i].length>>a[i].width;
if(a[i].length<a[i].width)
{
int t;
t=a[i].length;
a[i].length=a[i].width;
a[i].width=t;
}
}
sort(a,a+m,cmp);
for(i=0;i<m;i++) //aabbcc
{
while(i<m-1 &&a[i].length==a[i+1].length &&a[i].num==a[i+1].num &&a[i].width==a[i+1].width)
{
i++;
}
b[k++]=a[i];
}
for(i=0;i<k;i++)
{
cout<<b[i].num<<" "<<b[i].length<<" "<<b[i].width<<endl;
}
}
return 0;
}原文:http://blog.csdn.net/zuguodexiaoguoabc/article/details/44236395