hdoj 1234(结构体排序)

#include<iostream>
#include<stdio.h>
#include<string>
#include<algorithm>
using namespace std;
class Person
{
public:
	char id[50];
	int  cometime;
	int  lefttime;
};

int comparecometime(const void *a,const void *b)
{
	return ((Person*)a)->cometime-((Person*)b)->cometime;
}

int comparelefttime(const void *a,const void *b)
{
	return ((Person*)a)->lefttime-((Person*)b)->lefttime;
}
int main()
{
	int N,M;
	scanf("%d",&N);
	getchar();
	while(N--)
	{
		scanf("%d",&M);
		getchar();char temp[50];char come[50];char left[50];
		Person p[100];int i;
		for(i=0;i<M;i++)
		{
			scanf("%s",temp);
			strcpy(p[i].id,temp);
			//getchar();
			scanf("%s",come);
			//getchar();
			p[i].cometime=
				(come[7]-'0')+(come[6]-'0')*10    //分
					+( (come[4]-'0')+(come[3]-'0')*10 )*60
						+( (come[1]-'0')+(come[0]-'0')*10 )*3600;
			scanf("%s",left);
			p[i].lefttime=
				(left[7]-'0')+(left[6]-'0')*10    //分
					+( (left[4]-'0')+(left[3]-'0')*10 )*60
						+( (left[1]-'0')+(left[0]-'0')*10 )*3600;
		}
		qsort(p,M,sizeof(Person),comparecometime);
		cout<<p[0].id<<" ";
		qsort(p,M,sizeof(Person),comparelefttime);
		cout<<p[M-1].id<<endl;
	}
	return 0;
}

/*
1 strcpy(d,r)
2 qsort(首地址,个数,sizeof(class),comepare);
3 //因为很久没有用排序啦,所以这一次有点吃力。再查自己的博客。如果有一点acm啦。中么办。
最简单的方法就是提前背会。熟练应用。

*/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值