如果一个人的离开时间比另一个人的到达时间还要早呢?
不过这道题目好像不用这么复杂考虑。
简单的字符串输入输出问题。
直接把时间换成已秒为单位去求解就好了。
以上。
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<queue>
using namespace std;
#define maxn 505
char id[maxn][20];
int sign_in[maxn][3];
int sign_out[maxn][3];
int in[maxn],out[maxn];
int time(int i,int j,int k)
{
return i*3600+j*60+k;
}
int main()
{
int m,i,j,k;
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%s",&id[i]);
scanf("%d:%d:%d",&sign_in[i][0],&sign_in[i][1],&sign_in[i][2]);
in[i]=time(sign_in[i][0],sign_in[i][1],sign_in[i][2]);
scanf("%d:%d:%d",&sign_out[i][0],&sign_out[i][1],&sign_out[i][2]);
out[i]=time(sign_out[i][0],sign_out[i][1],sign_out[i][2]);
}
int minn=86400;
for(i=0;i<m;i++)
{
if(in[i]<minn)
{
minn=in[i];
j=i;
}
}
int maxx=0;
for(i=0;i<m;i++)
{
if(out[i]>maxx)
{
maxx=out[i];
k=i;
}
}
printf("%s %s",id[j],id[k]);
return 0;
}