题目如下:
题解 or 思路:
因为题目假设两次飞行时间是相同的,我们可以通过减法将时差消去。那么飞行时间就是:
t
i
m
e
1
+
t
i
m
e
2
2
\frac{time_1 + time2}{2}
2time1+time2
题目的难点是处理输入,我们可以使用 sscanf 来进行处理,这样会方便很多!
AC 代码如下:
int get_t()
{
string line;
getline(cin, line);
if (line.back() != ')')
line += " (+0)";
int h1, m1, s1, h2, m2, s2, f;
sscanf(line.c_str(), "%d:%d:%d %d:%d:%d (+%d)", &h1, &m1, &s1, &h2, &m2, &s2, &f);
return h2 * 3600 + m2 * 60 + s2 + f * 24 * 3600 - (h1 * 3600 + m1 * 60 + s1);
}
void solve()
{
int t = (get_t() + get_t()) / 2;
printf("%02d:%02d:%02d\n", t / 3600, t % 3600 / 60, t % 60);
}
int main()
{
int _;
cin >> _;
getchar();
// string str;
// getline(cin, str);
while (_--)
solve();
}