标签:algorithm
/*
* hdu OpenDoorManAndCloseDoorMan
* date 2014/5/13
* state AC
*/
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
struct DoorMan
{
char name[20];
int startH,startM,startS;
int endH,endM,endS;
};
vector<DoorMan> vectorDoorMan;
bool CompStartTime(const DoorMan& a,const DoorMan& b)
{
if(a.startH!=b.startH)return a.startH<b.startH;
else if(a.startH == b.startH && a.startM!=b.startM)
{
return a.startM<b.startM;
}
else if(a.startH == b.startH && a.startM == b.startM && a.startS !=b.startS)
return a.startS<b.startS;
}
bool CompEndTime(const DoorMan& a,const DoorMan& b)
{
/*
if(a.endH!=b.endH)return a.endH>b.endH;
else if(a.endH==b.endH && a.endM!=b.endM)
return a.endM>b.endM;
else if(a.endH==b.endH && a.endM==b.endM && a.endS!=b.endS)
return a.endS>b.endS;
*/
if(a.endH!=b.endH)return a.endH>b.endH;
else if(a.endM!=b.endM) return a.endM>b.endM;
else if(a.endS!=b.endS) return a.endS>b.endS;
}
int main()
{
//cout << "Hello world!" << endl;
freopen("input.txt","r",stdin);
int N;
cin>>N;
for(int i=0;i<N;i++)
{
vectorDoorMan.clear();
int M;
cin>>M;
for(int j=0;j<M;j++)
{
//char strName[20];
//int startH,startM,startS;
//int endH,endM,endS;
DoorMan doorMan;
scanf("%s %d:%d:%d %d:%d:%d",doorMan.name,&doorMan.startH,&doorMan.startM,&doorMan.startS
,&doorMan.endH,&doorMan.endM,&doorMan.endS);
vectorDoorMan.push_back(doorMan);
}
sort(vectorDoorMan.begin(),vectorDoorMan.end(),CompStartTime);
//cout<<endl;
DoorMan openDoorMan=vectorDoorMan[0];
sort(vectorDoorMan.begin(),vectorDoorMan.end(),CompEndTime);
DoorMan closeDoorMan=vectorDoorMan[0];
//cout<<openDoorMan.name<<" "<<openDoorMan.startH<<":"<<openDoorMan.startM<<":"<<openDoorMan.startS<<" ";
//cout<<closeDoorMan.name<<" "<<closeDoorMan.endH<<":"<<closeDoorMan.endM<<":"<<closeDoorMan.endS;
cout<<openDoorMan.name<<" "<<closeDoorMan.name;
cout<<endl;
}
return 0;
}
标签:algorithm
原文地址:http://blog.csdn.net/greenapple_shan/article/details/25702937