分析
飞机在飞,由于人为规定的时区导致好像时间变慢或者快了(实际上没有)。这里很像我们高中物理学的运动学知识,我们可以假设一个场景——船在不平静水面行驶,船从一个点出发行驶了s路程后返回原点(期间船速不变),然后告诉我们来回整个过程回到原点的时间是t,问船在静水中行驶s路程需要多长时间。我们可以以水为参考系,那么显然这个时间为 t/2。
C++ 代码
#include <iostream>
#include <cstdio>
using namespace std;
int get_time()
{
string line;
getline(cin, line);
if (line[line.size() - 1] != ')') line += " (+0)";
int h1, m1, s1, h2, m2, s2, d;
sscanf(line.c_str(), "%d:%d:%d %d:%d:%d (+%d)", &h1, &m1, &s1, &h2, &m2, &s2, &d);
return 3600 * h2 + 60 * m2 + s2 - 3600 * h1 - 60 * m1 - s1 + d * 24 * 3600;
}
int main()
{
int t;
scanf("%d", &t);
getchar();
while (t--)
{
int time = (get_time() + get_time()) / 2;
int hour = time / 3600, minute = time % 3600 / 60, second = time % 60;
printf("%02d:%02d:%02d\n", hour, minute, second);
}
return 0;
}
miao!