NYOJ一种排序

//最重要的收获就是懂得了,还可以调用库函数直接对结构体进行排序sort(const void *,const void *,cmp)  
/* 
bool cmp(rect c,rect d) 
{ 
    if(c.no!=d.no) 
    { 
        return c.no<d.no; 
    } 
    else if(c.len!=d.len) 
    { 
        return c.len<d.len; 
    } 
    else return c.wid<d.wid; 
}*/ 
#include<iostream>
#include<algorithm>
using namespace std;
typedef struct rect
{
	int no;
	int len;
	int wid;
}rect;
bool cmp(rect c,rect d)
{
	if(c.no!=d.no)
	{
		return c.no<d.no;
	}
	else if(c.len!=d.len)
	{
		return c.len<d.len;
	}
	else return c.wid<d.wid;
}
int main()
{
	int n,m;
	rect re[1000];
	cin>>n;
	int len,wid;
	for(int i=0;i<n;i++)
	{
		cin>>m;
		for(int j=0;j<m;j++)
		{
			cin>>re[j].no>>len>>wid;
			if(len>wid)
			{
				re[j].len=len;
				re[j].wid=wid;
			}else
			{
				re[j].len=wid;
				re[j].wid=len;
			}

		}
		sort(re,re+m,cmp);
		cout<<re[0].no<<' '<<re[0].len<<' '<<re[0].wid<<endl;
		for(int j=1;j<m;j++)
		{
			if(re[j].no==re[j-1].no&&re[j].len==re[j-1].len&&re[j].wid==re[j-1].wid)
				continue;
			else
				cout<<re[j].no<<' '<<re[j].len<<' '<<re[j].wid<<endl;
		}

	}
	return 0;
}

极简,专注,速度,极致
原文地址:https://www.cnblogs.com/simplelifestyle/p/3761896.html