题目如下:
题解 or 思路:
因为题目假设两次飞行时间是相同的,我们可以通过减法将时差消去。那么飞行时间就是: time1+time22\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();
}