STL 练手题 一种排序
algorithm 中 自写的 sort()排序
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct rectangle
{
int l;
int w;
int num;
} ret[1001];
int cmp(rectangle a,rectangle b)
{
if(a.num==b.num)
{
if(a.l==b.l)
return a.w<b.w;
return a.l<b.l;
}
else return a.num<b.num;
}
int main()
{
int test;
while(scanf("%d",&test)!=EOF)
{
while(test--)
{
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
int a,b;
scanf("%d%d%d",&ret[i].num,&a,&b);
ret[i].l=a>b?a:b;
ret[i].w=a>b?b:a;
}
sort(ret,ret+n,cmp);
int a,b,c;
a=ret[0].num;
b=ret[0].l;
c=ret[0].w;
printf("%d %d %d\n",a,b,c);
for(int i=1; i<n; i++)
{
if(a==ret[i].num&&b==ret[i].l&&c==ret[i].w) continue;
a=ret[i].num;
b=ret[i].l;
c=ret[i].w;
printf("%d %d %d\n",a,b,c);
}
}
}
return 0;
}
[cpp] view plaincopyprint?#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct rectangle
{
int l;
int w;
int num;
} ret[1001];
int cmp(rectangle a,rectangle b)
{
if(a.num==b.num)
{
if(a.l==b.l)
return a.w<b.w;
return a.l<b.l;
}
else return a.num<b.num;
}
int main()
{
int test;
while(scanf("%d",&test)!=EOF)
{
while(test--)
{
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
int a,b;
scanf("%d%d%d",&ret[i].num,&a,&b);
ret[i].l=a>b?a:b;
ret[i].w=a>b?b:a;
}
sort(ret,ret+n,cmp);
int a,b,c;
a=ret[0].num;
b=ret[0].l;
c=ret[0].w;
printf("%d %d %d\n",a,b,c);
for(int i=1; i<n; i++)
{
if(a==ret[i].num&&b==ret[i].l&&c==ret[i].w) continue;
a=ret[i].num;
b=ret[i].l;
c=ret[i].w;
printf("%d %d %d\n",a,b,c);
}
}
}
return 0;
}
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct rectangle
{
int l;
int w;
int num;
} ret[1001];
int cmp(rectangle a,rectangle b)
{
if(a.num==b.num)
{
if(a.l==b.l)
return a.w<b.w;
return a.l<b.l;
}
else return a.num<b.num;
}
int main()
{
int test;
while(scanf("%d",&test)!=EOF)
{
while(test--)
{
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
int a,b;
scanf("%d%d%d",&ret[i].num,&a,&b);
ret[i].l=a>b?a:b;
ret[i].w=a>b?b:a;
}
补充:综合编程 , 其他综合 ,