思路: 按要求将输入数据进行排序 取首元素
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
struct node
{
string ID;
int S_h, S_m, S_s;
int E_h, E_m, E_s;
};
bool Cmp1(node n1, node n2)
{
if(n1.S_h==n2.S_h)
{
if(n1.S_m==n2.S_m)
return n1.S_s<n2.S_s;
else
return n1.S_m<n2.S_m;
}
else
return n1.S_h<n2.S_h;
}
bool Cmp2(node n1, node n2)
{
if(n1.E_h==n2.E_h)
{
if(n1.E_m==n2.E_m)
return n1.E_s>n2.E_s;
else
return n1.E_m>n2.E_m;
}
else
return n1.E_h>n2.E_h;
}
int main()
{
ifstream cin("test.txt");
int M;
char C;
vector<node>vec;
node n2;
cin>>M;
while(M--)
{
cin>>n2.ID>>n2.S_h>>C>>n2.S_m>>C>>n2.S_s
>>n2.E_h>>C>>n2.E_m>>C>>n2.E_s;
vec.push_back(n2);
}
sort(vec.begin(),vec.end(),Cmp1);
cout<<vec[0].ID<<" ";
sort(vec.begin(),vec.end(),Cmp2);
cout<<vec[0].ID<<endl;
return 0;
}