1. 程式人生 > >【結構體排序】HDU1234開門人和關門人

【結構體排序】HDU1234開門人和關門人

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1234

#include<bits/stdc++.h>
using namespace std;
const int N=10005;
typedef struct time{
	int h,m,s;
}Node;
struct node{
	string s;
	Node in;
	Node out;
}stu[N];
bool cmp(node a,node b)
{
	if(a.in.h!=b.in.h)
		return a.in.h<b.in.h;
	if(a.in.m!=b.in.m)
		return a.in.m<b.in.m;
	if(a.in.s!=b.in.s)
		return a.in.s<b.in.s;
}
bool cmp2(node a,node b)
{
	if(a.out.h!=b.out.h)
		return a.out.h>b.out.h;
	if(a.out.m!=b.out.m)
		return a.out.m>b.out.m;
	if(a.out.s!=b.out.s)
		return a.out.s>b.out.s;
}
int main()
{
	int t,n;
	cin>>t;
	while(t--)
	{
		cin>>n;
		for(int i=0;i<n;i++){
			cin>>stu[i].s;
			char a;
			cin>>stu[i].in.h>>a>>stu[i].in.m>>a>>stu[i].in.s;
			cin>>stu[i].out.h>>a>>stu[i].out.m>>a>>stu[i].out.s;
		}
		sort(stu,stu+n,cmp);
		cout<<stu[0].s<<' ';
		sort(stu,stu+n,cmp2);
		cout<<stu[0].s<<endl;
	}
	return 0;
}