AcWing 1231. 航班时间
原题链接
简单
作者:
永远少年_3
,
2025-04-04 23:10:00
· 江苏
,
所有人可见
,
阅读 7
将字符串转换为数字,暴力模拟
#include<iostream>
#include<cstring>
#include<algorithm>
#define int long long
using namespace std;
string s1,s2;
int n;
signed main(){
cin>>n;
getchar();
while(n--){
int time=0;
getline(cin,s1),getline(cin,s2);
int time1=0,time2=0;
if(s1.size()<=20) time1=((s1[9]*10+s1[10])*3600+(s1[12]*10+s1[13])*60+(s1[15]*10+s1[16]))-((s1[0]*10+s1[1])*3600+(s1[3]*10+s1[4])*60+(s1[6]*10+s1[7]));
else time1=((s1[9]*10+s1[10])*3600+(s1[12]*10+s1[13])*60+(s1[15]*10+s1[16])+(s1[20]-'0')*3600*24)-((s1[0]*10+s1[1])*3600+(s1[3]*10+s1[4])*60+(s1[6]*10+s1[7]));
if(s2.size()<=20) time2=((s2[9]*10+s2[10])*3600+(s2[12]*10+s2[13])*60+(s2[15]*10+s2[16]))-((s2[0]*10+s2[1])*3600+(s2[3]*10+s2[4])*60+(s2[6]*10+s2[7]));
else time2=((s2[9]*10+s2[10])*3600+(s2[12]*10+s2[13])*60+(s2[15]*10+s2[16])+(s2[20]-'0')*3600*24)-((s2[0]*10+s2[1])*3600+(s2[3]*10+s2[4])*60+(s2[6]*10+s2[7]));
int hour,minute,second=0;
time=(time2+time1)/2;
hour=time/3600;
minute=(time%3600)/60;
second=time%60;
if(hour<10)cout<<0;
cout<<hour<<':';
if(minute<10)cout<<0;
cout<<minute<<':';
if(second<10)cout<<0;
cout<<second<<endl;
}
return 0;
}