#include <stdio.h>
#include <stdlib.h>
struct Node
{
int num,l,w;
};
int cmp(const void *a,const void *b)
{
Node *c=(Node *)a;
Node *d=(Node *)b;
if(c->num!=d->num)
return c->num-d->num;
else if(c->l!=d->l)
return c->l-d->l;
else return c->w-d->w;
}
int main()
{
Node s[1010];
int k,n,i;
scanf("%d",&k);
while(k--)
{
scanf("%d",&n);
//int m=n;
for(i=0;i<n;i++)
{
int t;
scanf("%d%d%d",&s[i].num,&s[i].l,&s[i].w);
if(s[i].l<s[i].w)
{
t=s[i].l;
s[i].l=s[i].w;
s[i].w=t;
}
}
qsort(s,n,sizeof(s[0]),cmp);
printf("%d %d %d\n",s[0].num,s[0].l,s[0].w);
for(i=1;i<n;i++)
{
if(!(s[i].num==s[i-1].num&&s[i].l==s[i-1].l&&s[i].w==s[i-1].w))//不是刪除,只是選擇輸出
printf("%d %d %d\n",s[i].num,s[i].l,s[i].w);
}
}
return 0;
}
用了快速排序,這是這個題的解決方法要點
nyoj8 一種排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.