您的位置:首页 > 其它

哈理工OJ 2284 Sign Deliveries(结构体排序)

2016-02-25 13:56 417 查看
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

struct node
{
int begi,take;
char express[250],good[250];
int achieve;
}a[250];

int cmp(node x,node y)
{
if(x.achieve==y.achieve)
{
if(strcmp(x.express,y.express)==0)
{
if(strcmp(x.good,y.good)<0)
return x.good<y.good;
else return y.good<x.good;
}
else if(strcmp(x.express,y.express)<0)
{
return x.express<y.express;
}
else return y.express<x.express;
}
else return x.achieve<y.achieve;
}
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
int i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d%s%s",&a[i].begi,&a[i].take,&a[i].express,&a[i].good);
if(a[i].begi<=11)
{
a[i].achieve=a[i].begi+30+a[i].take;
}
else
{
a[i].achieve=a[i].begi+a[i].take;
}
}
sort(a,a+n,cmp);
for(i=0;i<n;i++)
{
printf("%s %s\n",a[i].express,a[i].good);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: